Maison >base de données >tutoriel mysql >Comment utiliser correctement les requêtes LIKE avec les paramètres PDO ?

Comment utiliser correctement les requêtes LIKE avec les paramètres PDO ?

DDD
DDDoriginal
2024-12-03 01:12:10168parcourir

How to Correctly Use LIKE Queries with PDO Parameters?

Utilisation de requêtes LIKE dans PDO

Lorsque vous essayez d'implémenter des requêtes LIKE dans PDO, vous pouvez rencontrer des problèmes comme celui décrit dans la requête ci-dessous :

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

Cette requête ne renverra probablement aucun résultat, même lorsque $var1 et $var2 contiennent des mots de recherche valides. L'erreur réside dans l'inclusion incorrecte des signes %.

Pour utiliser correctement LIKE dans PDO, les signes % doivent être inclus dans le tableau $params, pas dans la requête elle-même. Voici le code corrigé :

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

En plaçant les variables entre signes % dans le tableau $params, vous vous assurez que les caractères % sont correctement remplacés dans la requête. Sans cette modification, l'instruction préparée par PDO traitera les signes % comme faisant partie de la valeur de chaîne littérale, ce qui entraînera une requête incorrecte.

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