Il s'avère que vous devez utiliser PDOStatement::nextRowset
.
$stmt = $db->query("SELECT 1; SELECT 2;");
$stmt->nextRowset();
var_dump( $stmt->fetchAll(PDO::FETCH_ASSOC) );
Cela renverra le résultat de la deuxième requête.
C'est une mise en œuvre un peu bizarre. Ce serait certainement plus facile si l'instruction multi-requête renvoyait simplement les deux ensembles de résultats sous un seul tableau. Cependant, l'avantage est que cette implémentation permet de récupérer chaque requête en utilisant différents styles FETCH .