Maison >développement back-end >tutoriel php >Comment lier des valeurs LIKE avec l'extension PDO ?

Comment lier des valeurs LIKE avec l'extension PDO ?

DDD
DDDoriginal
2024-11-16 15:28:03962parcourir

How to Bind LIKE Values with the PDO Extension?

Liaison de valeurs LIKE avec l'extension PDO

Lorsque vous travaillez avec des requêtes LIKE, il est important de réfléchir à la manière de lier les valeurs de variables à l'aide de l'extension PDO. . Le caractère générique '%', lorsqu'il est placé à la fin de la chaîne de recherche, peut présenter certains défis.

Dans la requête fournie :

select wrd from tablename WHERE wrd LIKE '$partial%'

La question se pose de savoir comment lier le Variable ${partial} avec PDO. Cela vaut la peine d'envisager trois options :

Option 1 : Lier avec '%' à la fin

select wrd from tablename WHERE wrd LIKE ':partial%'

Dans cette option, le paramètre :partial est lié au valeur $partial="somet", en conservant le '%' à la fin.

Option 2 : Liaison sans '%' à la fin

select wrd from tablename WHERE wrd LIKE ':partial'

Dans cette option, :partial est lié à $partial="somet%", ayant effectivement un '%' fixe à la fin de la chaîne de recherche.

Option 3 : Utiliser CONCAT de MySQL function

SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')

Cette option permet d'effectuer la concaténation du terme de recherche et de '%' dans MySQL lui-même.

De plus, si le terme de recherche que vous recherchez pourrait contiennent des caractères avec des significations spéciales dans les opérateurs LIKE, tels que '%', '_' ou '', une approche plus complexe utilisant l'échappement de chaîne est requise :

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

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:
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