Maison >base de données >tutoriel mysql >Comment utiliser correctement les instructions préparées PHP PDO avec les requêtes MySQL LIKE ?

Comment utiliser correctement les instructions préparées PHP PDO avec les requêtes MySQL LIKE ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-20 01:53:13263parcourir

How to Correctly Use PHP PDO Prepared Statements with MySQL LIKE Queries?

Instruction préparée PHP PDO avec requête MySQL LIKE

Lors de l'interrogation de données à l'aide de PDO en PHP avec une condition LIKE, il est crucial de comprendre le bon gestion des termes de recherche. Voici une solution au problème signalé :

Le code initial a ajouté de manière incorrecte des guillemets doubles au terme de recherche lors de la préparation de la déclaration :

$ret = $prep->execute(array(':searchTerm' => '"%'.$searchTerm.'%"'));

Cette citation supplémentaire n'est pas nécessaire. Les instructions préparées séparent les données de la requête, les guillemets ne doivent donc pas être intégrés.

De plus, le code a utilisé de manière incorrecte WHERE hs.hs_text LIKE ":searchTerm" sans ajouter les symboles de pourcentage autour du terme de recherche.

Pour corriger le problème, le code corrigé doit exécuter l'instruction comme suit :

$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));

Explication :

Les instructions préparées transportent les données séparément de la requête, de sorte que les valeurs ne sont pas directement substituées dans la chaîne de requête. Les guillemets ne sont nécessaires que lors de l'intégration de valeurs dans une requête, ce qui n'est pas le cas ici.

En utilisant la syntaxe correcte, l'instruction préparée par PDO peut rechercher efficacement des données en utilisant la condition LIKE avec le terme de recherche fourni.

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