Maison > développement back-end > tutoriel php > Comment utiliser correctement les instructions préparées par PDO pour les requêtes MySQL LIKE ?

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

Susan Sarandon
Libérer: 2024-10-31 02:05:29
original
421 Les gens l'ont consulté

How to Correctly Use PDO Prepared Statements for MySQL LIKE Queries?

Déclaration préparée PHP PDO : requête MySQL LIKE

Lors de l'exécution d'une requête LIKE à l'aide de la classe PDO de PHP, il est essentiel de gérer correctement l'opérateur LIKE et préparez la déclaration correctement.

Problème : Dans le code fourni, la requête d'origine fonctionnait avec le client MySQL mais rencontrait des problèmes lors de la migration vers PHP.

Solution : L'erreur réside dans la clause WHERE de la méthode prepare. Les lignes suivantes sont incorrectes :

1

2

3

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

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

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

Copier après la connexion

Explication :

  • Déclarations préparées : Elles transportent les données séparément de la requête, ce qui rend guillemets inutiles lors de l'intégration de valeurs.
  • Opérateur LIKE : Nécessite un caractère générique, tel que % ou _, pour représenter des séquences de caractères arbitraires.
  • Requête correcte : La clause WHERE correcte doit être :

1

<code class="php">WHERE hs.hs_text LIKE :searchTerm</code>

Copier après la connexion

Et l'instruction préparée doit être exécutée comme suit :

1

<code class="php">$ret = $prep->execute(array(':searchTerm' => '%' . $searchTerm . '%'));</code>

Copier après la connexion

Maintenant, la requête doit renvoyer les résultats souhaités .

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 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