Implémentation d'une requête LIKE dans PDO
Lors de l'utilisation de l'opérateur LIKE dans les requêtes PDO, il est essentiel de garantir la syntaxe correcte pour obtenir la recherche souhaitée résultats. Dans la requête fournie, le placement incorrect des signes % dans la chaîne $query est à l'origine du problème.
Correction syntaxique
La requête modifiée doit inclure les signes % dans le tableau $params, pas dans la chaîne de requête :
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%");
Cette modification garantit que l'opérateur LIKE opère sur les variables $var1 et $var2 tout en les échappant dans l'instruction préparée.
Explication
Dans PDO, les instructions préparées utilisent des espaces réservés (?) pour représenter des valeurs dynamiques. Lors de l'exécution de la requête, le tableau $params fournit les valeurs correspondantes pour remplacer les espaces réservés. Dans la requête d'origine, les signes % ont été placés dans la chaîne $query, ce qui a amené le PDO à les traiter comme des caractères littéraux.
En déplaçant les signes % dans le tableau $params, vous indiquez qu'ils font partie des valeurs dynamiques recherchées, plutôt qu'une partie de la syntaxe de la requête elle-même.
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!