Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql + php avec des caractères spéciaux comme '(apostrophe) et (guillemet)

Votre chaîne sql sera :

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

Ce qui n'est pas une déclaration valide. Comme Nanne l'a écrit, échappez la chaîne au moins avec mysql_real_escape_string :http ://php.net/manual/en/function.mysql-real-escape-string.php

Et en savoir plus sur l'injection SQLhttp://en.wikipedia.org/wiki/SQL_injection

Réfléchissez un peu :si quelqu'un publie ceci :$_POST['text'] avec la valeur :');delete from table;....

Vous pouvez dire adieu à vos données :)

Toujours filtrer/échapper l'entrée !

EDIT :Depuis PHP 5.5.0, mysql_real_escape_string et l'extension mysql sont obsolètes. Veuillez utiliser l'extension mysqli et la fonction mysqli ::escape_string à la place