Maison > développement back-end > tutoriel php > Comment lier correctement les opérateurs LIKE avec des caractères spéciaux dans PDO ?

Comment lier correctement les opérateurs LIKE avec des caractères spéciaux dans PDO ?

Susan Sarandon
Libérer: 2024-11-28 19:23:15
original
559 Les gens l'ont consulté

How to Properly Bind LIKE Operators with Special Characters in PDO?

Utilisation d'opérateurs LIKE avec des liaisons PDO

La liaison des valeurs LIKE avec PDO peut prêter à confusion en raison de l'utilisation de caractères spéciaux ("%" et "_") dans le motif correspondant. Dans cette requête spécifique :

SELECT wrd FROM tablename WHERE wrd LIKE '$partial%'
Copier après la connexion

Il existe plusieurs options pour lier la chaîne partielle '$partial%' :

  • Option 1 :
SELECT wrd FROM tablename WHERE wrd LIKE ':partial%'
Copier après la connexion

Ici, le paramètre ':partial' est lié à '$partial="somet"', en ajoutant le caractère générique '%' à la fin de la chaîne.

  • Option 2 :
SELECT wrd FROM tablename WHERE wrd LIKE ':partial'
Copier après la connexion

Dans ce cas, le paramètre ':partial ' est lié à '$partial="somet%"', qui inclut le caractère générique dans la limite value.

  • Option 3 (Alternative) :
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
Copier après la connexion

Cette option vous permet d'effectuer la concaténation de chaînes au sein de la requête MySQL, plutôt que dans le code PHP.

Gestion des caractères spéciaux

Si la chaîne partielle contient des caractères spéciaux comme '%', '_' ou '', des méthodes plus complexes sont nécessaires pour les échapper correctement. Voici un exemple :

$stmt = $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$escaped = str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var);
$stmt->bindParam(':term', $escaped);
Copier après la connexion

Dans ce code, les caractères spéciaux sont remplacés par des séquences d'échappement (' », « % » et « _ ») pour garantir qu'ils sont correctement interprétés par 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!

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