U kunt niet meerdere waarden in één tijdelijke aanduiding doorgeven. U moet een andere tijdelijke aanduiding invoeren voor elke waarde die moet worden doorgegeven aan IN ()
. Aangezien u niet weet hoeveel het er zullen zijn, gebruikt u ?
in plaats van benoemde parameters.
$values = explode(',', $values) ;
$placeholders = rtrim(str_repeat('?, ', count($values)), ', ') ;
$query = "SELECT * FROM table WHERE id IN ($placeholders)";
$stm = $db->prepare($query) ;
$stm->execute($values) ;