Maison > Article > base de données > Pourquoi utiliser mysql_real_escape_string au lieu d'addlashes pour les requêtes MySQL ?
En PHP, deux fonctions sont couramment utilisées pour échapper des chaînes avant de les utiliser dans des requêtes de base de données : mysql_real_escape_string et addlashes. Bien que les deux servent des objectifs similaires, il existe des différences subtiles à prendre en compte.
ajoute des barres obliques
Cette fonction ajoute des barres obliques inverses avant des caractères spécifiques : ' (guillemet simple), " (guillemet double ), (barre oblique inverse) et NUL (l'octet NULL). Il aide à protéger contre les attaques par injection SQL en empêchant ces caractères d'être interprétés comme faisant partie de la requête.
mysql_real_escape_string
Cette fonction, obsolète dans PHP 7.3.0, est conçue spécifiquement pour MySQL. Elle ajoute des barres obliques inverses aux caractères dont MySQL a besoin pour être échappés, notamment x00, n, r, x1a, ' (guillemet simple) et " (double). citation). Cependant, il est important de noter que l'implémentation réelle de l'échappement dans MySQL peut impliquer des caractères supplémentaires.
Signification des caractères non échappés dans mysql_real_escape_string
La principale différence entre les deux Les fonctions résident dans les caractères qui ne sont pas échappés par des barres obliques ajoutées. Ceux-ci incluent :
Recommandation
Il est généralement recommandé d'utiliser la fonction d'échappement de votre fournisseur de données, telle que mysql_real_escape_string, au lieu d'ajouter des barres obliques. Cela garantit que la chaîne est préparée de manière appropriée pour la base de données spécifique utilisée. Bien que mysql_real_escape_string soit obsolète, il est probable que les versions plus récentes de PHP auront des fonctions de remplacement similaires pour les chaînes d'échappement dans les requêtes MySQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!