Maison >base de données >tutoriel mysql >Comment utiliser correctement l'opérateur LIKE avec les instructions préparées PDO ?

Comment utiliser correctement l'opérateur LIKE avec les instructions préparées PDO ?

DDD
DDDoriginal
2024-12-05 07:12:15841parcourir

How Do I Correctly Use the LIKE Operator with PDO Prepared Statements?

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!

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