Impossible de lier les paramètres de la clause WHERE IN avec PDO
Votre code tente de lier un paramètre de la clause WHERE IN à l'aide de PDO, mais il renvoie systématiquement un décompte de 1. Le remplacement de la valeur paramétrée par la variable elle-même donne un décompte précis. Cette divergence se produit parce que PDO ne peut pas lier efficacement les paramètres des clauses IN.
Le tableau fourni est implosé dans une chaîne séparée par des virgules et attribué comme valeur de paramètre. Cependant, la base de données interprète cette chaîne comme une valeur unique, similaire à l'utilisation :
SELECT foo FROM bar WHERE ids IN ('1,2,3')
Malgré la présence de plusieurs valeurs, la base de données la traite comme une seule chaîne. Pour résoudre ce problème, vous devez insérer manuellement la liste IN dans la requête :
'SELECT foo FROM bar WHERE ids IN (' . $myArray .')'
Cette méthode garantit que chaque élément du tableau est correctement inclus dans la clause IN. Malheureusement, il n'existe actuellement aucune autre solution viable pour lier des paramètres dans les clauses WHERE IN à l'aide de PDO.
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!