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

mysql_real_escape_string VS addlashes

Ce que vous citez provient probablement de la doc, mais pour autant que je sache, ce n'est pas nécessairement vrai.

addslashes ajoute des barres obliques aux caractères généralement dérangeants. mysql_real_escape_string échappe tout ce que MySQL doit être échappé. Cela peut être plus ou moins de caractères que ce que addslashes prend soin de.

Aussi, mysql_real_escape_string n'ajoutera pas nécessairement des barres obliques pour s'échapper. Bien que je pense que cela fonctionne si vous le faites de cette façon, les versions récentes de MySQL échappent les guillemets en mettant deux d'entre eux ensemble au lieu de mettre une barre oblique devant.

Je pense que vous devriez toujours utiliser la fonction d'échappement de votre fournisseur de données au lieu de addslashes , car addslashes peut faire trop ou pas assez de travail pour l'usage que vous en faites. D'autre part, mysql_real_escape_string sait que faire pour préparer une chaîne pour l'intégrer dans une requête. Même si les spécifications changent sur la façon d'échapper des choses et que soudainement ce ne sont plus les barres obliques inverses que vous devriez utiliser, votre code fonctionnera toujours car mysql_real_escape_string en sera conscient.