Bonjour,
Voilà, j'ai besoin de faire une requete utilisant l'opérateur IN avec PDO (drivers mysql), et évidemment, ça ne marche pas...
prenons un exemple tout simple :
les enregistrements 1 et 2 existent bien dans la BDD... Mais ce code ne retourne que le 1er des 2 enregistrements...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // SPDO est mon singleton PDO $s = SPDO::getInstance()->prepare('select * from user where id_user in (:lst)'); $s->bindValue(':lst', '1, 2'); $s->execute(); echo'<pre>';print_r($s->fetchAll());echo'</pre>';
Question 1) Comment peut-on gérer un IN avec la PDO (sachant qu'en l'occurrence, un select imbriqué ne correspond pas à mon problème) ?
Question 2) je suppose qu'en faisant une concaténation de la chaine plutôt qu'un bind, je devrait arriver à quelque chose de plus probant (et moins sécure), mais par contre, j'esquiverai le problème sans comprendre le pourquoi du comment...
J'aurais pu comprendre qu'il renvoie une erreur du fait que PDO se sente obligé de faire un test de type sur la chaine que je bind, j'aurais pu comprendre que ça marche tout court, mais je ne comprend pas comment il en arrive à cette solution intermédiaire...
Si vous pouviez m'éclairer sur ce point, je vous en serait très reconnaissant.
Partager