sql >> Base de Datos >  >> RDS >> Mysql

¿Puede php PDO obtener dos conjuntos de resultados? Y en caso afirmativo, ¿qué es mejor 1 conjunto de resultados o más de 1?

PDO puede obtener dos (o más) conjuntos de filas, siempre que la base de datos que esté utilizando lo admita. Creo que MS SQL Server y MySQL ambos admiten esta funcionalidad, pero al momento de escribir SQLite no lo hace.

La función que desea es PDOStatement::nextRowset

Entonces, en tu ejemplo anterior, podrías hacer algo como;

$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 perfectamente razonable que un único procedimiento almacenado devuelva más de un conjunto de filas.