Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann PHP PDO zwei Resultsets abrufen? Und wenn ja, was ist besser 1 Ergebnismenge oder mehr als 1?

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.