PHP8 db2_next_result

2024-04-07 10:23 更新

(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           "
}


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号