1つのプレースホルダーに複数の値を渡すことはできません。 IN ()
に渡される値ごとに、異なるプレースホルダーを入力する必要があります 。いくつになるかわからないので、?
を使用してください 名前付きパラメーターの代わりに。
$values = explode(',', $values) ;
$placeholders = rtrim(str_repeat('?, ', count($values)), ', ') ;
$query = "SELECT * FROM table WHERE id IN ($placeholders)";
$stm = $db->prepare($query) ;
$stm->execute($values) ;