Mysql
 sql >> Base de données >  >> RDS >> Mysql

Est-ce que php PDO peut récupérer deux jeux de résultats ? Et si oui, qu'est-ce qui vaut mieux 1 jeu de résultats ou plus que 1 ?

Oui PDO peut récupérer deux ensembles de lignes (ou plus), tant que la base de données que vous utilisez le prend en charge. Je pense que MS SQL Server et MySQL les deux prennent en charge cette fonctionnalité, mais au moment de la rédaction de SQLite pas.

La fonction que vous voulez est PDOStatement::nextRowset

Donc, dans votre exemple ci-dessus, vous pourriez faire quelque chose comme ;

$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);

Il est parfaitement raisonnable qu'une seule procédure stockée renvoie plusieurs ensembles de lignes.