Ternyata Anda perlu menggunakan PDOStatement::nextRowset
.
$stmt = $db->query("SELECT 1; SELECT 2;");
$stmt->nextRowset();
var_dump( $stmt->fetchAll(PDO::FETCH_ASSOC) );
Ini akan mengembalikan hasil untuk kueri kedua.
Implementasinya agak aneh. Tentu akan lebih mudah jika pernyataan multi-query hanya mengembalikan kedua set hasil di bawah satu array. Namun, keuntungannya adalah implementasi ini memungkinkan untuk mengambil setiap kueri menggunakan gaya FETCH yang berbeda .