Maison > base de données > tutoriel mysql > Comment échapper correctement les caractères spéciaux dans les requêtes MySQL ?

Comment échapper correctement les caractères spéciaux dans les requêtes MySQL ?

Susan Sarandon
Libérer: 2024-12-14 14:18:10
original
960 Les gens l'ont consulté

How Do I Properly Escape Special Characters in MySQL Queries?

Échapper aux caractères spéciaux dans les requêtes MySQL

Lors de la création de requêtes MySQL incluant des caractères spéciaux, il est crucial de les échapper pour éviter les erreurs de syntaxe. Cela devient encore plus important lorsqu'il s'agit de saisies utilisateur, car les caractères spéciaux peuvent être exploités à des fins malveillantes.

Considérez l'exemple suivant :

select * from tablename where fields like "%string "hi"  %";
Copier après la connexion

Dans cette requête, les guillemets doubles entourant le La chaîne "hi" est interprétée comme faisant partie de la chaîne elle-même, provoquant une erreur de syntaxe.

Échappement Exigences

La séquence d'échappement spécifique requise dépend du caractère spécial utilisé. MySQL reconnaît les séquences d'échappement suivantes :

  • ' ' - Caractère ASCII NUL (0x00)
  • ''' - Caractère guillemet simple
  • '"' - Guillemet double caractère
  • 'b' - Caractère d'espacement arrière
  • 'n' - Nouvelle ligne (saut de ligne) caractère
  • 'r' - Caractère de retour chariot
  • 't' - Caractère de tabulation
  • 'Z' - ASCII 26 (Contrôle-Z)
  • ' ' - Caractère barre oblique inverse
  • '%' - Caractère de pourcentage
  • '_' - Soulignement caractère

Solution

Pour échapper aux guillemets doubles dans l'exemple de requête, la requête doit être écrite comme suit :

select * from tablename where fields like '%string \"hi\" %';
Copier après la connexion

Alternativement, des guillemets simples peuvent être utilisés comme délimiteurs de chaîne :

select * from tablename where fields like '%string ''hi'' %';
Copier après la connexion

Cette approche simplifie l'échappement en garantissant que les guillemets simples dans la chaîne n'ont pas besoin d'être échappés.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal