Ukázalo se, že musíte použít PDOStatement::nextRowset
.
$stmt = $db->query("SELECT 1; SELECT 2;");
$stmt->nextRowset();
var_dump( $stmt->fetchAll(PDO::FETCH_ASSOC) );
Tím se vrátí výsledek pro druhý dotaz.
Je to trochu zvláštní implementace. Určitě by bylo jednodušší, kdyby příkaz s více dotazy pouze vrátil obě sady výsledků pod jedno pole. Výhodou však je, že tato implementace umožňuje načíst každý dotaz pomocí různých stylů FETCH .