首页  >  文章  >  后端开发  >  如何从 PHP/mysqli 中的存储过程检索多个结果集?

如何从 PHP/mysqli 中的存储过程检索多个结果集?

DDD
DDD原创
2024-11-01 18:45:02782浏览

How do you retrieve multiple result sets from a stored procedure in PHP/mysqli?

在 PHP/mysqli 中使用存储过程检索多个结果集

在 PHP/MySQLi 中,执行具有多个结果集的存储过程需要小心处理。要在执行存储过程后前进到第二个结果集,您必须:

  1. 使用 mysqli_stmt_execute: 使用 mysqli_stmt_execute 执行存储过程。
  2. 获取第一个结果集:调用 mysqli_stmt_get_result 获取第一个结果集,并使用 fetch_assoc、fetch_array 或 fetch_row 读取其数据。
  3. 移动到下一个结果集:读取后第一个结果集,调用 mysqli_stmt_next_result 移动到下一个结果集。
  4. 获取第二个结果集:再次调用 mysqli_stmt_get_result 获取第二个结果集并读取其数据。

以下是使用 PHP/MySQLi 的示例代码:

<code class="php">$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');
mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);
mysqli_stmt_execute($stmt);

// Fetch the first result set
$result1 = mysqli_stmt_get_result($stmt);
while ($row = $result1->fetch_assoc()) {
    printf("%d\n", $row['id']);
}

// Move to the second result set
mysqli_stmt_next_result($stmt);
$result2 = mysqli_stmt_get_result($stmt);
while ($row = $result2->fetch_assoc()) {
    printf("%d\n", $row['id']);
}

mysqli_stmt_close($stmt);</code>

此代码成功检索并打印指定存储过程中两个结果集中的数据。

以上是如何从 PHP/mysqli 中的存储过程检索多个结果集?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn