Saya ingin tahu apakah mungkin untuk mengikat array nilai ke placeholder menggunakan PDO. Use case di sini mencoba untuk melewatkan array nilai untuk digunakan dengan suatu IN()
kondisi.
Saya ingin dapat melakukan sesuatu seperti ini:
<?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();
?>
Dan minta PDO mengikat dan mengutip semua nilai dalam array.
Saat ini saya sedang melakukan:
<?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();
?>
Yang pasti berhasil, tetapi hanya ingin tahu apakah ada solusi bawaan yang saya lewatkan?