Si scopre che devi usare PDOStatement::nextRowset
.
$stmt = $db->query("SELECT 1; SELECT 2;");
$stmt->nextRowset();
var_dump( $stmt->fetchAll(PDO::FETCH_ASSOC) );
Questo restituirà il risultato per la seconda query.
È un'implementazione un po' strana. Sarebbe certamente più semplice se l'istruzione multi-query restituisse entrambi i set di risultati in un array. Tuttavia, il vantaggio è che questa implementazione consente di recuperare ogni query utilizzando diversi Stili FETCH .