[PHP + MySQL] mysql error #1064

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Spezial
Mitglied
Beiträge: 135
Registriert: 15.07.2004 08:53
Wohnort: Braunschweig
Kontaktdaten:

[PHP + MySQL] mysql error #1064

Beitrag von Spezial »

das ganze dreht sich um folgenden codeabschnitt (gleicher fehler tritt bei späteren codeabschnitten auf die einen sql-befehl enthalten der INSERT, DELETE oder UPDATE macht...select geht):

Code: Alles auswählen

	if ($_GET['do'] == 'add') {
	
		$part_hersteller = $_POST['part_hersteller'];
		$part_produkt = $_POST['part_produkt'];
		$part_info = $_POST['part_info'];
		$part_gewicht = $_POST['part_gewicht'];
		$part_preis = $_POST['part_preis'];
		
		$sql = 'INSERT INTO `partz_list`
				( `id` , `part_hersteller` , `part_produkt` , `part_info` , `part_gewicht` , `part_preis` , `part_order` )
				VALUES (
				NULL , \'' . $part_hersteller . '\', \'' . $part_produkt . '\', \'' . $part_info . '\', \'' . $part_gewicht . '\', \'' . $part_preis . '\', \'500000\'
				);';
		
		if (mysql_query('$sql')) {
			$output_title = '<font color="#00CC00">Erfolg!</font>';
			$output_message = 'Part wurde erfolgreich hinzugefügt.';
		}
		else {
			$output_title = '<font color="#CC0000">Error!</font>';
			$output_message = 'Part konnte nicht hinzugefügt werden.';
		}
		die(mysql_errno() . ': ' . mysql_error());
		
		renumber_order();
	}
Jetzt macht er aber nich das was er soll, sondern dort wo ich die die() Zeile eingefügt habe steht dann:
1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$sql' at line 1
Die MySQL Datenbank ist Version 5.0.24a glaub ich. Wenn ich den Befehl ausgefüllt im phpmyadmin eingebe funktioniert es aber...
Was zur Hölle ist da falsch? :-?

hoffe auf schnelle antwort ^^

greetz
Wenn Chuck Norris ins Wasser fällt, wird er nicht nass…aber das Wasser wird Chuck Norris.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

finden:

Code: Alles auswählen

if (mysql_query('$sql'))
tauschen gegen:

Code: Alles auswählen

if (mysql_query($sql))
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Spezial
Mitglied
Beiträge: 135
Registriert: 15.07.2004 08:53
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Spezial »

shit ^^
danke, manchmal sieht man echt den wald vor lauter bäumen nicht mehr ^^
Wenn Chuck Norris ins Wasser fällt, wird er nicht nass…aber das Wasser wird Chuck Norris.
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

du weisst aber schon, dass der code ohne validierung der $_POST werte eine einladung für sql-injection ist, oder?
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
Benutzeravatar
Spezial
Mitglied
Beiträge: 135
Registriert: 15.07.2004 08:53
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Spezial »

larsneo hat geschrieben:du weisst aber schon, dass der code ohne validierung der $_POST werte eine einladung für sql-injection ist, oder?
ich weiß nichtmal was du mit validierung meinst, geschweige denn sql-injection :oops:
Wenn Chuck Norris ins Wasser fällt, wird er nicht nass…aber das Wasser wird Chuck Norris.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

schau dir mal auf php.net, mysql_real_escape_string - mysql_escape_string an, das dürfte helfen.
Mit einer SQL Injection ist folgendes gemeint, man kann damit böshaftigen SQL Code in die eigentliche Abfrage einschleusen und somit Kontrolle über die Datenbank erhalten, im Falle phpBB auch Adminrechte und Co. mysql_escape_string() und Co. auch addslashes() schützen davor.
s.a: http://www.phpbb.de/viewtopic.php?t=117446
Antworten

Zurück zu „Coding & Technik“