(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)
PDOStatement::nextRowset — Avança para o próximo conjunto de registros em um identificados de instrução com múltiplos conjuntos de registros
Alguns servidores de bancos de dados suportam procedimentos armazenados que retornam mais de um conjunto de registros (também conhecido como conjunto de resultados). PDOStatement::nextRowset() habilita o acesso ao segundo conjunto de registros, e subsequentes, associados com um objeto PDOStatement. Cada conjunto de registros pode ter um conjunto diferente de colunas em relação ao conjunto anterior.
Esta função não possui parâmetros.
Exemplo #1 Buscando múltiplos conjuntos de registros de um procedimento armazenado
O exemplo a seguir mostra como chamar um procedimento armazenado,
MULTIPLE_ROWSETS
, que retorna três conjuntos de registros. É usado um laço
do-while para
chamar o método PDOStatement::nextRowset() até que ele
retorne false
e termine o laço quando não houver mais conjuntos de registros disponíveis.
<?php
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
$rowset = $stmt->fetchAll(PDO::FETCH_NUM);
if ($rowset) {
printResultSet($rowset, $i);
}
$i++;
} while ($stmt->nextRowset());
function printResultSet(&$rowset, $i) {
print "Conjunto de resultados $i:\n";
foreach ($rowset as $row) {
foreach ($row as $col) {
print $col . "\t";
}
print "\n";
}
print "\n";
}
?>
O exemplo acima produzirá:
Conjunto de resultados 1: apple red banana yellow Conjunto de resultados 2: orange orange 150 banana yellow 175 Conjunto de resultados 3: lime green apple red banana yellow