Ho capito:
$ids = '1,2,3';
Esplodi la stringa $ids in un array:
$ids_array = explode(',', $ids);
Questo dà:
$ids_array[] = 1;
$ids_array[] = 2;
$ids_array[] = 3;
Crea una stringa di punti interrogativi delimitata da virgole. Il numero di punti interrogativi corrisponde al numero di valori dell'array
$in = str_repeat('?,', count($ids_array) - 1) . '?';
Questo produce una stringa che assomiglia a:
?,?,?
Metti quella stringa in sql
$q = "SELECT *
FROM table
WHERE id IN($in) ";
$stmt = $this->db->prepare($q);
Eseguire la query, passando l'array come parametro
$stmt->execute($ids_array);