PDOStatement::nextRowset
在一个多行集语句句柄中推进到下一个行集
PHP 5 >= 5.1.0,PHP 7,PHP 8
PDOStatement::nextRowset 用于使 PDOStatement 对象前进到下一个结果集。当执行一个返回多个结果集的语句(例如存储过程)时,可以使用此方法迭代每个结果集。
public PDOStatement::nextRowset(): bool
如果成功转到下一个结果集,返回 true;如果没有更多的结果集,返回 false。
$pdo = new PDO("mysql:host=localhost;dbname=testdb", "username", "password"); $sql = " CALL multi_result_procedure(); "; $stmt = $pdo->prepare($sql); $stmt->execute(); <p>do {<br> while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {<br> print_r($row);<br> }<br> } while ($stmt->nextRowset());<br>
此示例中,假设数据库中有一个存储过程 multi_result_procedure(),该过程返回多个结果集。使用 PDOStatement::nextRowset() 方法可以在结果集之间切换。外层 do...while 循环依次处理每个结果集,内层 while 循环用于遍历当前结果集的每一行。