Lors d'une requête de barres obliques () avec la clause WHERE de MySQL, deux scénarios distincts se présentent : lors de l'utilisation de l'opérateur égal (=) et lors de l'utilisation de l'opérateur LIKE.
Pour l'opérateur =, aucun échappement supplémentaire de n'est requis. MySQL l'échappe automatiquement pour maintenir l'intégrité de la valeur comparée. Dans votre exemple de requête, (SELECT * FROM titles which title = 'test') renverrait un enregistrement avec le titre 'test', comme prévu.
En revanche, l'opérateur LIKE nécessite un double échappement des barres obliques () car il est interprété comme un caractère spécial d'échappement. Pour rechercher un single dans une clause LIKE, vous devez le spécifier à la place. En effet, MySQL supprime les barres obliques inverses deux fois : une fois pendant l'analyse et une autre fois pendant la correspondance de modèles.
Dans votre exemple de requête, (SELECT * FROM titres où titre LIKE 'test\') renverrait un enregistrement avec le titre 'test ', car les doubles barres obliques inverses () compensent la suppression pendant le traitement.
Si vous le souhaitez, vous pouvez personnaliser le caractère d'échappement pour LIKE en en utilisant le mot-clé ESCAPE. Par exemple, vous pouvez spécifier :
SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'
Dans ce cas, le tube (|) sert de caractère d'échappement au lieu de la barre oblique inverse par défaut (). Cela vous permet de l'utiliser dans vos requêtes LIKE sans avoir à le double-échapper.
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!