Maison > base de données > tutoriel mysql > Comment utiliser correctement l'opérateur LIKE avec PDO en PHP ?

Comment utiliser correctement l'opérateur LIKE avec PDO en PHP ?

Linda Hamilton
Libérer: 2024-12-08 03:40:13
original
344 Les gens l'ont consulté

How to Correctly Use the LIKE Operator with PDO in PHP?

Implémentation de requêtes LIKE avec PDO

Lors de l'utilisation de l'opérateur LIKE dans le langage de requête structuré (SQL), le signe de pourcentage (%) est utilisé comme caractère générique pour correspondre à zéro ou plusieurs occurrences d'une sous-chaîne. En PHP avec PDO (PHP Data Objects), l'opérateur LIKE peut être utilisé pour effectuer une correspondance de modèle sur une colonne de base de données.

Formulation du problème

Un utilisateur rencontre un problème tout en essayant d'utiliser l'opérateur LIKE dans PDO. Même si nous nous sommes assurés que les valeurs des variables contiennent les termes de recherche souhaités et avons vérifié la fonctionnalité d'autres requêtes PDO, la requête LIKE ne renvoie aucun résultat.

Corriger la syntaxe de la requête

Pour résoudre Pour résoudre le problème, il est important de joindre les valeurs des variables correspondant au caractère générique de pourcentage (%) dans le tableau $params plutôt que de les intégrer dans la chaîne de requête elle-même. Voici la syntaxe correcte :

$query = "SELECT * FROM tbl WHERE address LIKE ? OR address LIKE ?";
$params = array("%$var1%", "%$var2%");
$stmt = $handle->prepare($query);
$stmt->execute($params);
Copier après la connexion

Explication

Dans la requête d'origine, les caractères génériques % étaient intégrés dans la chaîne de requête. Cependant, PDO prépare la requête en citant les valeurs, ce qui donne une requête ressemblant à :

SELECT * FROM tbl WHERE address LIKE '%"foo"%' OR address LIKE '%"bar"%'
Copier après la connexion

Cette syntaxe incorrecte empêche les caractères génériques % de fonctionner correctement en tant que caractères génériques, ce qui entraîne qu'aucune correspondance n'est trouvée. En incluant les caractères génériques dans le tableau $params à la place, les signes de pourcentage ne sont pas cités, ce qui leur permet d'effectuer la fonctionnalité de correspondance de caractères génériques prévue.

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