EKKi: MYSQL -> PHP syntaxfehler (Ich bin blind!)

Beitrag lesen

Mahlzeit Haschmich,

Quizfrage, was habe ich übersehen?

3 Dinge:

name = $name,

1. Es fehlen die einfachen Anführungszeichen, da es sich beim Inhalt der Variablen "$name" vermutlich um einen String handelt und die Spalte "name" vermutlich den Datentyp VARCHAR (o.ä.) handelt.

2. Es fehlt die kontextgerecht Behandlung der Variablen - Dein Skript ist in höchstem Maße anfällig für "SQL-Injection" (informiere Dich zu diesem Stichwort!) ... vermutlich werden die Werte der einzelnen Variablen auch noch aus dem $_GET- oder $_POST-Array herauskopiert?

Ich würde Dir ungefähr folgendes vorschlagen:

$aendern = sprintf("UPDATE grapp1aeg SET  
name = '%s',  
strasse = '%s',  
region = '%s',  
plz = '%s',  
ort = '%s',  
tel = '%s',  
fax = '%s'  
WHERE  
aegid = %d  
",  
[link:http://de3.php.net/manual/en/function.mysql-real-escape-string.php@title=mysql_real_escape_string]($name),  
mysql_real_escape_string($strasse),  
mysql_real_escape_string($region),  
mysql_real_escape_string($plz),  
mysql_real_escape_string($ort),  
mysql_real_escape_string($tel),  
mysql_real_escape_string($fax),  
mysql_real_escape_string($id)  
);

Oder benutze gleich mysqli ...

$aendern = mysql_query($aendern);

3. Die Variable "$aendern" enthielt vorher in einem String den SQL-Befehl - nachher enthält sie plötzlich einen ganz anderen Datentyp mit einer komplett anderen Bedeutung. Tu Dir selbst einen Gefallen und "recycle" Variablen nicht auf diese Weise: Du erschwerst Dir nur selbst die Fehlersuche ... oder ist Dir in 3 Monaten noch auf den ersten Blick klar, was wann in welcher Variablen steht?

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|