Ich bin gespannt, ob es möglich ist, ein Array von Werten mithilfe von PDO an einen Platzhalter zu binden. Der Anwendungsfall hier ist der Versuch, ein Array von Werten zur Verwendung mit einer IN()
Bedingung zu übergeben.
Ich möchte in der Lage sein, so etwas zu tun:
<?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();
?>
Lassen Sie PDO alle Werte im Array binden und in Anführungszeichen setzen.
Im Moment mache ich:
<?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();
?>
Was macht den Job sicher, aber ich frage mich nur, ob es eine eingebaute Lösung gibt, die mir fehlt?