Maison >développement back-end >tutoriel php >Comment utiliser l'opérateur LIKE avec des paramètres dans PDO ?

Comment utiliser l'opérateur LIKE avec des paramètres dans PDO ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-27 09:26:11811parcourir

How to Use LIKE Operator with Parameters in PDO?

Implémenter la requête LIKE dans PDO

Dans PDO, lors de l'utilisation de l'opérateur LIKE, il est crucial d'inclure les signes % dans les paramètres, et non dans la requête elle-même. En effet, les instructions préparées par PDO encapsulent les valeurs entre guillemets, ce qui peut interférer avec les espaces réservés %.

Par exemple, considérons la requête suivante :

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

Lorsque cette requête est préparée, le % les signes seront encapsulés entre guillemets, ce qui donnera une requête comme celle-ci :

SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'

Par conséquent, la requête ne retournera aucun résultat car les guillemets doubles perturbent la fonctionnalité prévue de l'opérateur LIKE.

Pour remédier à ce problème, les signes % doivent être inclus dans les paramètres à la place :

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

Avec cette modification, la requête préparée recherchera correctement les adresses contenant $var1 ou $var2.

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