Sven Rautenberg: UPDATE unsicher?

Beitrag lesen

Moin!

$ergebnis=mysql_query('UPDATE tabelle SET text="'.$text.'" WHERE id=1 LIMIT 1', $verbindung);

Nach diese Anweisung wurden alle Datensatze der Tabelle im Feld "text" mit "Beipieltext mit " überschrieben, da der mysql_query den Ausdruck nur bis dahin auswertet, dann scheinbar abbricht, aber dennoch die Anweisung ausführt. (mysql_error() würde eine Fehlermeldung bringen, ich weiß...)

Lass dir das resultierende SQL-Statement mal genau ausgeben (also vorher an eine Variable zuweisen, die mit echo ausgeben und dann erst ausführen).

Mir scheint, in $text kommt die Zeichenfolge   ";   vor. Wenn diese Zeichen enthalten sind, wird der String abgebrochen, und alles andere hintendran ignoriert. mysql_escape_string() ist hier das Stichwort.

- Sven Rautenberg