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

Mary-Kate Olsen
Libérer: 2024-11-27 09:26:11
original
717 Les gens l'ont consulté

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);
Copier après la connexion

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"%'
Copier après la connexion

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%");
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal