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

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

Mary-Kate Olsen
Libérer: 2024-12-09 19:50:16
original
423 Les gens l'ont consulté

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

Instruction préparée PHP PDO - Requête MySQL LIKE

Les instructions préparées PDO offrent un moyen sûr et efficace d'exécuter des requêtes SQL avec des paramètres dynamiques. Lorsque vous travaillez avec des requêtes MySQL LIKE, il est crucial d'utiliser une syntaxe appropriée.

Question :

Un développeur est confronté à des difficultés lors de l'exécution d'une requête MySQL LIKE à l'aide de PDO en PHP, malgré la requête fonctionne correctement dans le client MySQL. Le code ne parvient pas à renvoyer de résultats et diverses variantes de syntaxe ont été tentées sans succès.

Réponse :

La syntaxe incorrecte dans le code se trouve dans les instructions de préparation et d'exécution. . Le problème est l’utilisation inutile de guillemets doubles et une liaison de paramètres incorrecte. Voici le code corrigé :

$sql = 'SELECT   hs.hs_pk, 
          hs.hs_text, 
          hs.hs_did, 
          hd.hd_did, 
          hd.hd_text, 
          hv.hv_text, 
          hc.hc_text 
FROM      hs 
LEFT JOIN hd 
 ON       hs.hs_did = hd.hd_did 
LEFT JOIN hd 
 ON       hd.hd_vid = hv.hv_id 
LEFT JOIN hc 
 ON       hd.hd_pclass = hc.hc_id
WHERE     hs.hs_text LIKE :searchTerm
LIMIT 25';

$prep = $dbh->prepare($sql);
$ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));
Copier après la connexion

Explication :

Les instructions préparées fonctionnent en envoyant la requête à la base de données sans aucune valeur de paramètre intégrée. Les paramètres sont envoyés séparément pour être liés par le moteur de base de données. L'ajout de guillemets doubles à la valeur du paramètre dans l'instruction d'exécution est incorrect car PDO mettra automatiquement la valeur du paramètre entre guillemets si nécessaire.

De plus, l'opérateur LIKE nécessite des pourcentages autour du terme de recherche pour permettre des correspondances partielles. Dans le code incorrect, le terme de recherche est incorrectement délimité par des guillemets au lieu des signes de pourcentage nécessaires.

En corrigeant ces erreurs de syntaxe, l'instruction préparée par PDO peut être utilisée pour exécuter avec succès les requêtes MySQL LIKE.

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