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

Échapper aux guillemets simples en PHP lors de l'insertion dans MySQL

Vous devriez échapper chacune de ces chaînes (dans les deux extraits) avec mysql_real_escape_string() .

http://us3.php.net/mysql-real-escape-string

La raison pour laquelle vos deux requêtes se comportent différemment est probablement due au fait que vous avez magic_quotes_gpc activé (ce qui, vous devez le savoir, est une mauvaise idée). Cela signifie que les chaînes recueillies à partir de $_GET, $_POST et $_COOKIES sont échappées pour vous (par exemple, "O'Brien" -> "O\'Brien" ).

Une fois que vous avez stocké les données, puis que vous les avez récupérées à nouveau, la chaîne que vous récupérez de la base de données ne sera pas être automatiquement échappé pour vous. Vous récupérerez "O'Brien" . Donc, vous devrez le passer par mysql_real_escape_string() .