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 ?

Oct 31, 2024 am 02:05 AM

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 :

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

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 :
<code class="php">WHERE hs.hs_text LIKE :searchTerm</code>

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

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

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment travailler avec des tableaux en php Comment travailler avec des tableaux en php Aug 20, 2025 pm 07:01 PM

Phparrayshandledatacollectionsefficantyusing indexedorassociativstructures; theyareCreated withArray () ou [], accessedViakeys, modifiedByAssigment, itérated withoreach, andmanipulatedUsingFunction

Décrivez le modèle de conception de l'observateur et sa mise en œuvre dans PHP. Décrivez le modèle de conception de l'observateur et sa mise en œuvre dans PHP. Aug 15, 2025 pm 01:54 PM

TheObserverdesignpatternenablesautomaticnotificationofdependentobjectswhenasubject'sstatechanges.1)Itdefinesaone-to-manydependencybetweenobjects;2)Thesubjectmaintainsalistofobserversandnotifiesthemviaacommoninterface;3)Observersimplementanupdatemetho

Comparez et contrastez les traits PHP, les classes abstraites et les interfaces avec les cas d'utilisation pratiques. Comparez et contrastez les traits PHP, les classes abstraites et les interfaces avec les cas d'utilisation pratiques. Aug 11, 2025 pm 11:17 PM

Utiliser une interfacestodefineContracts pour les classes liées, garantissant à ce que les implications spécifiques de la responsabilité; 2. ustractClassestoshareCommonLogicamongRelatedClasses whileenforcingInheritance; 3.UsetraTstoreUtyUtilityCodeAcrosses

Comment utiliser la variable $ _cookie en php Comment utiliser la variable $ _cookie en php Aug 20, 2025 pm 07:00 PM

$ _CookieisaphpsuperglobalForAccessingCooKiessentByThebrowser; cookiesAreSetingSetCooKie () BeforeOutput, ReadVia $ _cookie ['name'], Updated Resenderwithnewvalues, anddeletedBysetinganExpiredtimestamp, withsecurit

Expliquez les stratégies d'indexation de la base de données (par exemple, B-Tree, Text complet) pour une application PHP soutenue par MySQL. Expliquez les stratégies d'indexation de la base de données (par exemple, B-Tree, Text complet) pour une application PHP soutenue par MySQL. Aug 13, 2025 pm 02:57 PM

B-TreeIndexesAreBestFormostPhpapplications, AstheySupportequality andRangequeries, Tri, andareIdEalforColumnSuseInwhere, Join, OrorderByClauses; 2.Full-TextIndexessHouldFornaturAralLanguageorBooleanSearSonTextFieldslikeArlesorProductDescriptiiReScriptidScriptidiansearchesEnTextFieldslikeArlesorProductDescripti

Que sont publics, privés et protégés en PHP Que sont publics, privés et protégés en PHP Aug 24, 2025 am 03:29 AM

Les membres du public sont accessibles à volonté; 2. Les membres privés ne sont accessibles que dans la classe; 3. Les membres protégés sont accessibles dans les classes et les sous-classes; 4. L'utilisation rationnelle peut améliorer la sécurité et la maintenabilité du code.

Comment exécuter une requête de mise à jour dans PHP Comment exécuter une requête de mise à jour dans PHP Aug 24, 2025 am 05:04 AM

Utilisation de la méthode orientée objet MySQLI: établissez une connexion, prétraitez les instructions de mise à jour, liez les paramètres, exécutez et vérifiez les résultats, et enfin fermez la ressource. 2. À l'aide de la méthode de procédure MySQLI: Connectez-vous à la base de données via des fonctions, préparez des instructions, liez les paramètres, effectuez des mises à jour et fermez la connexion après le traitement des erreurs. 3. Utilisez PDO: Connectez-vous à la base de données via PDO, définissez le mode Exception, pré-processus SQL, paramètres de liaisons, effectuez des mises à jour, utilisez un coup d'essai pour gérer les exceptions et enfin publier des ressources. Utilisez toujours des instructions de prétraitement pour empêcher l'injection SQL, vérifier l'entrée de l'utilisateur et fermer les connexions dans le temps.

Comment travailler avec les dates et les temps en php Comment travailler avec les dates et les temps en php Aug 20, 2025 pm 06:57 PM

UsedateTimefordatesInPhp: CreateWithNewDateTime (), FormatWithFormat (), ModifyViaAdd () Ormodify (), SettimeZones withDatetimeZone, andCompareusingOratorsOrdiff () tagtIntervals.

See all articles