Maison >base de données >tutoriel mysql >Comment utiliser correctement les requêtes LIKE avec les paramètres PDO ?
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!