Maison > base de données > tutoriel mysql > Comment lier correctement les paramètres d'une clause WHERE IN avec PDO ?

Comment lier correctement les paramètres d'une clause WHERE IN avec PDO ?

DDD
Libérer: 2024-11-17 13:38:02
original
867 Les gens l'ont consulté

How to Properly Bind Parameters for a WHERE IN Clause with PDO?

Paramètres de liaison pour la clause WHERE IN avec PDO

Lors de l'utilisation de PDO pour exécuter une requête avec une clause WHERE IN, la liaison des paramètres peut ne pas fonctionner comme prévu. Comme le démontre l'extrait de code fourni, la liaison d'une liste de valeurs séparées par des virgules au paramètre :ids entraîne un décompte de 1, bien qu'il y ait plusieurs valeurs dans le tableau.

Explication

Le problème réside dans la façon dont la clause IN s'attend à ce que les valeurs soient formatées. Lors de la liaison d'un tableau, PHP combine tous les éléments en une seule chaîne, qui est traitée comme un paramètre par la base de données. Cela entraîne l'exécution de la requête suivante :

SELECT foo FROM bar WHERE ids IN ('1,2,3')
Copier après la connexion

Cependant, la clause IN nécessite que chaque valeur soit un paramètre individuel :

SELECT foo FROM bar WHERE ids IN (1, 2, 3)
Copier après la connexion

Solution

Pour résoudre ce problème, il faut insérer manuellement la liste IN dans la chaîne de requête :

'SELECT foo FROM bar WHERE ids IN (' . $myArray .')'
Copier après la connexion

Alternativement, on peut utiliser la méthode bindParam pour lier des valeurs individuelles plutôt qu'un tableau.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal