Ich bin neugierig zu wissen, ob es möglich ist, ein Array von Werten an einen Platzhalter mit PDO zu binden. Der Anwendungsfall hier ist der Versuch, ein Array von Werten für die Verwendung mit einer IN()
Zustand.
Ich würde gerne so etwas machen können:
<?php
$ids=array(1,2,3,7,8,9);
$db = new PDO(...);
$stmt = $db->prepare(
'SELECT *
FROM table
WHERE id IN(:an_array)'
);
$stmt->bindParam('an_array',$ids);
$stmt->execute();
?>
Und lassen Sie PDO alle Werte im Array binden und zitieren.
Im Moment mache ich das:
<?php
$ids = array(1,2,3,7,8,9);
$db = new PDO(...);
foreach($ids as &$val)
$val=$db->quote($val); //iterate through array and quote
$in = implode(',',$ids); //create comma separated list
$stmt = $db->prepare(
'SELECT *
FROM table
WHERE id IN('.$in.')'
);
$stmt->execute();
?>
Das erfüllt sicherlich seinen Zweck, aber ich frage mich, ob es eine integrierte Lösung gibt, die ich übersehe?