Pomyślałem:
$ids = '1,2,3';
Rozbij ciąg $ids na tablicę:
$ids_array = explode(',', $ids);
Daje to:
$ids_array[] = 1;
$ids_array[] = 2;
$ids_array[] = 3;
Utwórz oddzielony przecinkami ciąg znaków zapytania. Liczba znaków zapytania odpowiada liczbie wartości tablicy
$in = str_repeat('?,', count($ids_array) - 1) . '?';
Daje to ciąg, który wygląda tak:
?,?,?
Umieść ten ciąg w sql
$q = "SELECT *
FROM table
WHERE id IN($in) ";
$stmt = $this->db->prepare($q);
Wykonaj zapytanie, przekazując tablicę jako parametr
$stmt->execute($ids_array);