Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Einfaches Anführungszeichen in PHP beim Einfügen in MySQL maskieren

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 .