PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

PDOStatement->rowCount> <PDOStatement->getColumnMeta
Last updated: Fri, 27 Jun 2008

view this page in

PDOStatement->nextRowset

(PHP 5 >= 5.1.0, PECL pdo:0.2-1.0.3)

PDOStatement->nextRowset — Advances to the next rowset in a multi-rowset statement handle

Description

bool PDOStatement::nextRowset ( void )

Some database servers support stored procedures that return more than one rowset (also known as a result set). PDOStatement::nextRowset() enables you to access the second and subsequent rowsets associated with a PDOStatement object. Each rowset can have a different set of columns from the preceding rowset.

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example #1 Fetching multiple rowsets returned from a stored procedure

The following example shows how to call a stored procedure, MULTIPLE_ROWSETS, that returns three rowsets. We use a do / while loop to loop over the PDOStatement::nextRowset() method, which returns false and terminates the loop when no more rowsets can be returned.

<?php
$sql 
'CALL multiple_rowsets()';
$stmt $conn->query($sql);
$i 1;
do {
    
$rowset $stmt->fetch(PDO::FETCH_NUM);
    if (
$rowset) {
        
printResultSet($rowset$i);
    }
    
$i++;
} while (
$stmt->nextRowset());

function 
printResultSet(&$rowset$i) {
    print 
"Result set $i:\n";
    foreach (
$rowset as $row) {
        foreach (
$row as $col) {
            print 
$col "\t";
        }
        print 
"\n";
    }
    print 
"\n";
}
?>

The above example will output:

Result set 1:
apple    red
banana   yellow

Result set 2:
orange   orange    150
banana   yellow    175

Result set 3:
lime     green
apple    red
banana   yellow



add a note add a note User Contributed Notes
PDOStatement->nextRowset
dev at NOSPAMbcdiv dot com
24-Jan-2008 08:20
Unfortunately nextRowset() apparently is not implemented in PHP 5.2.5*  -- returns "SQLSTATE[HYC00]: Optional feature not implemented".

So stored procedures returning multiple recordsets only return the first recordset. Using nextRowset() to move to the next recordset only returns the optional feature error above.

Hopefully this will save someone else from spinning their wheels for days trying to find a way to get it to work -- apparently it doesn't yet and several bugs remain open relating to the nextRowset() PDO feature.

*w/ This Environment:
Apache 2.0.61 (Win32), PHP 5.2.5, PDO Driver for MySQL client library version 5.0.45, MySQL 5.0.45

PDOStatement->rowCount> <PDOStatement->getColumnMeta
Last updated: Fri, 27 Jun 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites