Sie sollten jeden dieser Strings (in beiden Snippets) mit mysql_real_escape_string() maskieren .
https://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 .