Có PDO
có thể tìm nạp hai (hoặc nhiều) tập hợp hàng, miễn là cơ sở dữ liệu bạn đang sử dụng hỗ trợ nó. Tôi nghĩ rằng MS SQL Server và MySQL cả hai đều hỗ trợ chức năng này, nhưng tại thời điểm viết SQLite không.
Chức năng bạn muốn là PDOStatement ::nextRowset
Vì vậy, trong ví dụ của bạn ở trên, bạn có thể làm điều gì đó như;
$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);
Hoàn toàn hợp lý khi một thủ tục được lưu trữ duy nhất trả về nhiều hơn một bộ hàng.