PHP8 db2_next_result
(PECL ibm_db2 >= 1.0.0)
db2_next_result — 从存储过程请求下一个结果集
说明
db2_next_result(resource $stmt): resource|false
存储过程可以返回零个或多个结果集。当您处理时 第一个结果集的处理方式与处理结果的方式完全相同 由简单的 SELECT 语句返回,以获取第二个和后续 存储过程的结果集,必须调用 db2_next_result() 函数并将结果返回给 唯一命名的 PHP 变量。
参数
stmt
从 db2_exec() 或 db2_execute() 返回的预准备语句。
返回值
如果 存储过程返回另一个结果集。如果存储的 过程未返回另一个结果集。
示例
示例 #1 调用返回多个结果集的存储过程
在下面的示例中,我们调用一个返回 3 的存储过程 结果集。第一个结果集是直接从同一 我们调用 CALL 语句的语句资源,而 第二个和第三个结果集是从语句资源中提取的 从我们对 db2_next_result() 函数的调用中返回。
<?php
$conn = db2_connect($database, $user, $password);
if ($conn) {
$stmt = db2_exec($conn, 'CALL multiResults()');
print "Fetching first result set\n";
while ($row = db2_fetch_array($stmt)) {
var_dump($row);
}
print "\nFetching second result set\n";
$res = db2_next_result($stmt);
if ($res) {
while ($row = db2_fetch_array($res)) {
var_dump($row);
}
}
print "\nFetching third result set\n";
$res2 = db2_next_result($stmt);
if ($res2) {
while ($row = db2_fetch_array($res2)) {
var_dump($row);
}
}
db2_close($conn);
}
?>
以上示例会输出:
Fetching first result set array(2) { [0]=> string(16) "Bubbles " [1]=> int(3) } array(2) { [0]=> string(16) "Gizmo " [1]=> int(4) } Fetching second result set array(4) { [0]=> string(16) "Sweater " [1]=> int(6) [2]=> string(5) "llama" [3]=> string(6) "150.00" } array(4) { [0]=> string(16) "Smarty " [1]=> int(2) [2]=> string(5) "horse" [3]=> string(6) "350.00" } Fetching third result set array(1) { [0]=> string(16) "Bubbles " } array(1) { [0]=> string(16) "Gizmo " }