PDOStatement::nextRowset — Переход к следующему набору строк в дескрипторе оператора с несколькими наборами строк (PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)
bool PDOStatement::nextRowset (void)
Некоторые службы баз данных поддерживают хранимые процедуры, которые возвращают более одного набора строк (также называемого набором результатов).
PDOStatement::nextRowset() позволяет получить доступ ко второму и последующим наборам строк в сочетании с объектом PDOStatement. Каждая строка, указанная выше, может иметь другой набор столбцов.
Возвращает TRUE в случае успеха или FALSE в случае неудачи.
В следующем примере показано, как вызвать хранимую процедуру, которая возвращает MULTIPLE_ROWSETS для трех наборов строк. Используйте цикл do / while для прохождения метода PDOStatement::nextRowset(), возвращая false и заканчивая цикл, когда больше не возвращается наборов строк.
<?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 "Набор результатов $i:n" foreach ($rowset as $row) { foreach ($row as $col) { напечатайте $col . "t"; напечатайте "n" } напечатайте "n";}?>
Вывод приведенного выше примера:
Набор результатов 1: яблоко, красный, банан, желтый. Набор результатов 2: оранжевый, оранжевый, 150, банановый желтый. 175. Набор результатов 3: зеленый лайм, красный, банан, желтый.