Sono curioso di sapere se è possibile associare una matrice di valori a un segnaposto utilizzando DOP. Il caso d'uso qui sta tentando di passare un array di valori per l'uso con una IN()
condizione.
Mi piacerebbe poter fare qualcosa del genere:
<?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();
?>
E fare in modo che DOP si associ e citi tutti i valori dell'array.
Al momento sto facendo:
<?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();
?>
Che sicuramente fa il lavoro, ma mi chiedo solo se c'è una soluzione integrata che mi manca?