PDOStatement::nextRowset -- Avansează la următorul set de rânduri dintr-un set de mai multe rânduri obţinut după o instrucţiune de manipulare
Descriere
bool PDOStatement::nextRowset ( void )
Unele servere ale bazelor de date suportă proceduri stocate (stored procedures) care întorc mai mult de un rând (cunoscut ca set de rezultate). PDOStatement::nextRowSet() permite accesarea celui de al doilea şi a următoarelor seturi de rânduri asociate cu un obiect PDOStatement. Fiecare set de rânduri poate avea un set diferit de coloane din setul precedent de rânduri.
Valori întoarse
Întoarce TRUE la reuşita operaţiunii sau FALSE la eşec.
Exemplu. Preluarea mai multor seturi de rânduri întoarse dintr-o procedură stocată (stored procedure)
Următorul exemplu arată cum se poate apela o procedură stocată (stored procedure), MULTIPLE_RESULTS, care întoarce trei seturi de rânduri.
Se va folosi o buclă do / while pentru a repeta metoda PDOStatement::nextRowset(), care întoarce false şi termină bucla atunci când nu mai pot fi întoarse seturi de rânduri.
<?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 "Setul de rezultate $i:\n";
foreach ($rowset as $row) {
foreach ($row as $col) {
print $col . "\t";
}
print "\n";
}
print "\n";
}
?>
Exemplul de mai sus va afişa:
Setul de rezultate 1:
apple red
banana yellow
Setul de rezultate 2:
orange orange 150
banana yellow 175
Setul de rezultate 3:
lime green
apple red
banana yellow