Sie sollten jeden dieser Strings (in beiden Snippets) mit mysql_real_escape_string()
maskieren .
http://us3.php.net/mysql-real-escape-string
Der Grund für das unterschiedliche Verhalten Ihrer beiden Abfragen liegt wahrscheinlich darin, dass Sie magic_quotes_gpc
haben eingeschaltet (was Sie wissen sollten, ist eine schlechte Idee). Das bedeutet, dass Zeichenfolgen, die von $_GET, $_POST und $_COOKIES gesammelt werden, für Sie maskiert werden (d. h. "O'Brien" -> "O\'Brien"
). ).
Sobald Sie die Daten speichern und anschließend wieder abrufen, wird die Zeichenfolge, die Sie aus der Datenbank zurückerhalten, nicht automatisch für Sie entkommen. Du bekommst "O'Brien"
zurück . Sie müssen es also durch mysql_real_escape_string()
leiten .