Ja PDO
kann zwei (oder mehr) Rowsets abrufen, sofern die von Ihnen verwendete Datenbank dies unterstützt. Ich denke MS SQL Server und MySQL beide unterstützen diese Funktionalität, aber zum Zeitpunkt des Schreibens von SQLite nicht.
Die gewünschte Funktion ist PDOStatement::nextRowset
In Ihrem obigen Beispiel könnten Sie also so etwas tun:
$sth = $dbh->prepare("SELECT * FROM tb1 WHERE cond1;
SELECT * FROM tb2 WHERE cond2");
$sth->execute();
$rowset1 = $sth->fetchAll();
$sth->nextRowset();
$rowset2 = $sth->fetchAll();
print_r($rowset1);
print_r($rowset2);
Es ist vollkommen vernünftig, dass eine einzelne gespeicherte Prozedur mehr als ein Rowset zurückgibt.