Maison > développement back-end > tutoriel php > Comment structurer correctement les requêtes LIKE avec des paramètres dans PDO ?

Comment structurer correctement les requêtes LIKE avec des paramètres dans PDO ?

DDD
Libérer: 2024-11-11 11:38:03
original
1067 Les gens l'ont consulté

How to Properly Structure LIKE Queries with Parameters in PDO?

Implémentation de la requête LIKE dans PDO

Lorsque vous utilisez PDO pour exécuter des requêtes impliquant l'opérateur LIKE, il est essentiel de comprendre comment structurer correctement le requête et les paramètres. Considérons la requête suivante :

"$query = "SELECT * FROM tbl WHERE adresse LIKE '%?%' OR adresse LIKE '%?%'";
$params = array($var1, $ var2);"

Erreur :
La requête ne renvoie aucun enregistrement car les signes de pourcentage (%) sont inclus dans la requête elle-même, plutôt que d'être spécifiés en tant que paramètres.

Solution :

Pour remédier à ce problème :

$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?";
$params = array("%$var1%", "%$var2%");
$stmt = $handle->prepare($query);
$stmt->execute($params);
Copier après la connexion

Explication :

En incluant les signes de pourcentage dans les paramètres, nous nous assurons qu'ils sont correctement traités comme des espaces réservés lors de l'exécution de la requête. Cela demande à PDO de remplacer les valeurs correspondantes par les termes de recherche réels, permettant ainsi à l'opération LIKE d'être effectuée correctement.

Lors de l'examen de la requête générée à partir de votre code d'origine, vous remarquerez quelque chose du genre "SELECT * FROM tbl WHERE adresse LIKE '%"foo"%' OR adresse LIKE '%"bar"%'", où l'instruction préparée cite par erreur les valeurs dans une chaîne déjà citée. En suivant l'approche correcte décrite ci-dessus, vous pouvez résoudre ce problème et exécuter avec succès des requêtes LIKE dans PDO.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal