Я думаю, что Соулмердж прав. вам нужно будет создать строку запроса.
<?php
$ids = array(1, 2, 3, 7, 8, 9);
$inQuery = implode(',', array_fill(0, count($ids), '?'));
$db = new PDO(...);
$stmt = $db->prepare(
'SELECT *
FROM table
WHERE id IN(' . $inQuery . ')'
);
// bindvalue is 1-indexed, so $k+1
foreach ($ids as $k => $id)
$stmt->bindValue(($k+1), $id);
$stmt->execute();
?>
исправить: Дэн, ты был прав. исправил код (хотя не проверял)
edit: и Крис (комментарии), и кто-то из них предположили, что цикл foreach ...
(...)
// bindvalue is 1-indexed, so $k+1
foreach ($ids as $k => $id)
$stmt->bindValue(($k+1), $id);
$stmt->execute();
... может быть избыточным, поэтому цикл foreach
и $stmt->execute
можно заменить просто ...
<?php
(...)
$stmt->execute($ids);
?>
(опять же, я не проверял)