Mailinglisten-Archive |
Christian Wohlgemuth wrote: > Hallo Liste, > > ich habe wieder ein Problem mit PDO und bindValue. > Diesmal bei folgender Query: > > [..] > $query = 'SELECT * FROM `tabelle` WHERE `tabelle`.`id` IN (?)'; > $stmt = $pdo->prepare($query); > $stmt->bindValue(1, implode(', ',$array)); > $stmt->execute(); > [..] > > leider bekomme ich laut mysql.log folgendes Query: > [..] > SELECT * FROM `tabelle` WHERE `tabelle`.`id` IN ('1, 3, 7') > [..] > und somit das falsche Ergebnis. Stimmt. So sollte es aber funktionieren: --- $query = 'SELECT * FROM `tabelle` WHERE `tabelle`.`id` IN (?'.str_repeat(',?',count($array)-1).')'; $stmt = $pdo->prepare($query); $stmt->bindValue(1, $array); --- Der Code geht jedoch davon aus, dass $array immer mindestens ein Element enthält. Du solltest entweder sicherstellen, dass dies der Fall ist, oder meinen Code umschreiben. > vielen Dank > Christian Yannik
php::bar PHP Wiki - Listenarchive