Maison  >  Article  >  base de données  >  Quelle est la méthode pour échapper les caractères MySQL ?

Quelle est la méthode pour échapper les caractères MySQL ?

WBOY
WBOYavant
2023-05-26 16:55:463363parcourir

Les caractères d'échappement courants dans MySQL incluent les guillemets simples ('), les guillemets doubles ("), la barre oblique inverse () et certains caractères spéciaux, tels que le signe de pourcentage (%) et le trait de soulignement. (_). Ces caractères ont une signification particulière dans MySQL. S'ils ne sont pas échappés, cela peut entraîner des résultats de requête incorrects ou des problèmes de sécurité tels que l'injection SQL.

Dans MySQL, les caractères de conversion peuvent être échappés à l'aide de barres obliques inverses. Lorsque vous utilisez des guillemets simples dans les instructions de requête, vous devez ajouter une barre oblique inverse avant les guillemets simples pour échapper à

SELECT * FROM my_table WHERE my_column = 'I'm a student';

afin de pouvoir interroger correctement les caractères contenant des guillemets simples de la même manière, si vous le souhaitez. utilisez des guillemets doubles, vous devez également les échapper :

SELECT * FROM my_table WHERE my_column = "The book is called "The Great Gatsby"";

Dans MySQL, les barres obliques inverses peuvent également être utilisées pour échapper aux caractères spéciaux. Vous pouvez utiliser l'instruction de recherche suivante pour interroger la chaîne contenant le signe de pourcentage #. 🎜🎜#

SELECT * FROM my_table WHERE my_column LIKE '%%%';

De cette façon, vous pouvez faire correspondre correctement le signe de pourcentage dans la chaîne

MySQL fournit certaines fonctions intégrées qui peuvent être utilisées ne se limitent pas à l'utilisation d'une barre oblique inverse pour s'échapper. Par exemple, vous pouvez utiliser l'opérateur double barre verticale (||) pour concaténer des chaînes et utiliser la fonction CONCAT_WS() pour échapper automatiquement les caractères, comme indiqué ci-dessous :

SELECT CONCAT_WS(' ', 'I', 'am', 'a', 'student') AS sentence;

Cette instruction de requête renverra une chaîne contenant des espaces, dans laquelle les mots ont été correctement échappés.

Afin d'éviter les problèmes de sécurité lors de l'injection de chaînes, non seulement des caractères d'échappement peuvent être utilisés pour échapper des chaînes, mais des requêtes paramétrées peuvent également être utilisées. les requêtes qui utilisent des espaces réservés au lieu de valeurs réelles peuvent empêcher la base de données d'être attaquée par des utilisateurs malveillants. Par exemple, vous pouvez utiliser ce qui suit. La requête paramétrée interroge une chaîne contenant le mot spécifié :

SELECT * FROM my_table WHERE my_column LIKE CONCAT('%', ?, '%');

. Le point d'interrogation représente ici un espace réservé qui peut être remplacé dynamiquement par une valeur réelle au moment de la requête. L'utilisation de requêtes paramétrées peut grandement améliorer la sécurité de

.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer