Maison >développement back-end >tutoriel php >Comment lier correctement les opérateurs LIKE avec des caractères spéciaux dans 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%'
Il existe plusieurs options pour lier la chaîne partielle '$partial%' :
SELECT wrd FROM tablename WHERE wrd LIKE ':partial%'
Ici, le paramètre ':partial' est lié à '$partial="somet"', en ajoutant le caractère générique '%' à la fin de la chaîne.
SELECT wrd FROM tablename WHERE wrd LIKE ':partial'
Dans ce cas, le paramètre ':partial ' est lié à '$partial="somet%"', qui inclut le caractère générique dans la limite value.
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
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);
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!