wahsaga: String in MySQL Datenbank speichern

Beitrag lesen

hi,

http://www.php.net/mysql_escape_string

heißt das also man darf kein String in dieser Form in eine Datenbank abspeichern?

es _geht_ einfach nicht, weil die anführungszeichen _im_ string mit der mysql-syntax kollidieren.

Auch nicht über PHPmyAdmin
Also bisher habe ich es mit PhPmYAdmin abespeichert und mit evel den String aus der Fatenbank ausgeführt hat alles ohne Fehler funktioniert.

klar - phpmyadmin führt im hintergrund natürlich ebenfalls mysql_escape_string (oder etwas analoges aus), bevor es die von dir im textfeld eingegebenen daten an die DB abschickt.

Heißt das also ich muß es für die Zukunft anders machen und den String für das reinschreiben in die Datenbank maskieren?

ja, das solltest du _immer_ machen.
auch, um bei benutzereingaben zu verhindern, dass dir jemand weiteren sql-code unterjubeln kann, der dann z.b. daten löscht (sog. SQL code injection).

Und wenn ich den String wieder auslese umparsen?
Nur wäre das maskieren und zurück parsen im Script etwas mehr Aufwand was nicht wirklich schön ist :-(

nein, nur beim eintragen in die DB maskieren.
die DB erkennt diese maskierungen, und speichert die daten selsbt intern schon wieder unmaskiert ab.
beim auslesen bekommst du also automatisch wieder deine unmaskierten daten, hier ist keine weitere behandlung erforderlich(*).

gruss,
wahsaga

(*) ausser wenn magic_quotes_runtime aktiviert wäre, [linbk:http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime]