Det visar sig att du behöver använda PDOStatement::nextRowset
.
$stmt = $db->query("SELECT 1; SELECT 2;");
$stmt->nextRowset();
var_dump( $stmt->fetchAll(PDO::FETCH_ASSOC) );
Detta kommer att returnera resultatet för den andra frågan.
Det är ett lite udda genomförande. Det skulle verkligen vara lättare om multi-query-satsen bara skulle returnera båda resultatuppsättningarna under en array. Fördelen är dock att den här implementeringen gör det möjligt att hämta varje fråga med olika FETCH-stilar .