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!