Implémentation correcte des requêtes LIKE dans PDO
Lorsque vous essayez d'exécuter une requête LIKE dans PDO, il est important de garantir une syntaxe appropriée pour récupérer des résultats précis . Dans la requête fournie, le problème réside dans l'emplacement des caractères génériques %.
La syntaxe correcte pour les requêtes LIKE dans PDO consiste à inclure les signes % dans le tableau $params, plutôt que dans la requête elle-même. Voici un exemple :
$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?"; $params = array("%$var1%", "%$var2%"); $stmt = $handle->prepare($query); $stmt->execute($params);
Si les signes % étaient inclus dans le tableau $params, la requête générée ressemblerait à ce qui suit :
SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
Cependant, dans la requête d'origine fournie , les signes % ont été inclus dans la requête elle-même :
$query = "SELECT * FROM tbl WHERE address LIKE '%?%' OR address LIKE '%?%'";
Lorsque la requête est exécutée, l'instruction préparée cite les valeurs à l'intérieur d'une chaîne déjà citée, ce qui entraîne une requête incorrecte. En déplaçant les signes % vers le tableau $params, la requête prévue sera exécutée correctement.
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!