Maison  >  Article  >  développement back-end  >  Comment éviter les requêtes incorrectes lors de l’utilisation de LIKE dans PDO ?

Comment éviter les requêtes incorrectes lors de l’utilisation de LIKE dans PDO ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-11 12:54:02984parcourir

How to Avoid Incorrect Queries When Using LIKE in PDO?

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!

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