Fonctions d'échappement MySQL : mysql_real_escape_string vs addlashes
Les fonctions PHP mysql_real_escape_string() et addlashes() sont toutes deux utilisées pour échapper aux caractères potentiellement problématiques dans des chaînes destinées à être insérées dans des bases de données MySQL. Cependant, il existe des distinctions subtiles entre les deux fonctions qui peuvent avoir un impact sur leur adéquation à différents cas d'utilisation.
addslashes()
addslashes() remplace un jeu de caractères prédéfini. avec des barres obliques inverses pour éviter qu'ils ne soient interprétés comme des caractères spéciaux par la base de données. Le jeu de caractères par défaut échappé par addlashes() comprend les guillemets simples ('), les guillemets doubles ("), la barre oblique inverse () et l'octet NULL.
mysql_real_escape_string()
mysql_real_escape_string() encapsule un appel à la fonction interne mysql_real_escape_string() de MySQL, qui échappe une gamme de caractères plus large que addlashes() Plus précisément, mysql_real_escape_string() échappe les caractères suivants :
Différences clés
La principale différence entre mysql_real_escape_string () et addlashes() résident dans leur gestion des caractères d'échappement mentionnés ci-dessus. mysql_real_escape_string() échappe certains caractères que addlashes() ne fait pas, comme l'octet NULL, le saut de ligne et le retour chariot.
De plus, mysql_real_escape_string() effectue l'opération d'échappement basée sur les règles définies par MySQL, qui peut différer des règles d'échappement appliquées par addlashes(). Dans les versions récentes de MySQL, par exemple, l'échappement de chaîne peut impliquer de doubler les guillemets plutôt que de les faire précéder de barres obliques inverses. mysql_real_escape_string() gérerait ces modifications automatiquement, contrairement à addlashes().
Quand utiliser quelle fonction
En général, mysql_real_escape_string() est préféré à addlashes() pour échapper les chaînes destinées aux bases de données MySQL. En effet, mysql_real_escape_string() utilise des règles d'échappement spécifiques à MySQL, garantissant que les chaînes sont correctement préparées pour être insérées dans les requêtes MySQL.
D'un autre côté, addlashes() peut convenir dans les situations où vous devez échapper des chaînes. à d'autres fins, telles que la manipulation générale de texte ou la préparation de chaînes à afficher. Cependant, il est essentiel d'être conscient des limitations de addlashes() et de tester minutieusement votre code lorsque vous l'utilisez pour échapper des chaînes destinées aux bases de données 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!