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

Mysql + php mit Sonderzeichen wie '(Apostroph) und (Anführungszeichen)

Ihre SQL-Zeichenfolge lautet:

INSERT INTO `table` (`row1`) VALUES ('google's site')

Was keine gültige Aussage ist. Wie Nanne schrieb, maskiere den String zumindest mit mysql_real_escape_string :http ://php.net/manual/en/function.mysql-real-escape-string.php

Und lesen Sie mehr über SQL-Injection http://en.wikipedia.org/wiki/SQL_injection

Denken Sie ein bisschen nach:Wenn jemand dies postet:$_POST['text'] mit Wert:');delete from table;....

Sie können sich von Ihren Daten verabschieden :)

Eingabe immer filtern/escapen!

EDIT:Ab PHP 5.5.0 sind mysql_real_escape_string und die mysql-Erweiterung veraltet. Bitte verwenden Sie stattdessen die Erweiterung mysqli und die Funktion mysqli::escape_string