mysqli_stmt::next_result
(mysqli_stmt_next_result)从多个查询中读取下一个结果
PHP 5.3.0及以上版本
mysqli_stmt::next_result 用于检索在多个结果集存在时的下一个结果集。在执行带有多个结果集的SQL查询时,尤其是在存储过程调用中,调用此方法可以移动到下一个结果集。
public mysqli_stmt::next_result ( void ) : bool
此函数不需要任何参数。
如果下一个结果集存在并成功地被检索,返回 true。如果没有更多结果集,或者检索下一个结果集失败,返回 false。
以下是一个基本的示例,展示了如何使用 mysqli_stmt::next_result 来处理多个结果集。
在这个示例中,我们执行一个包含多个结果集的 SQL 查询,并使用 next_result 来获取每一个结果集。
<?php // 创建数据库连接 $mysqli = new mysqli("localhost", "username", "password", "database"); // 检查连接 if ($mysqli->connect_error) { die("连接失败: " . $mysqli->connect_error); } // 创建准备语句 $stmt = $mysqli->prepare("CALL your_stored_procedure()"); // 执行语句 $stmt->execute(); // 获取第一个结果集 do { $result = $stmt->get_result(); if ($result) { while ($row = $result->fetch_assoc()) { echo "Result: " . $row['column_name'] . "<br>"; } } } while ($stmt->next_result()); // 移动到下一个结果集 // 关闭语句和连接 $stmt->close(); $mysqli->close(); ?>
上述代码展示了如何在执行存储过程后,逐一获取所有的结果集。每次调用 next_result 方法时,都会尝试加载下一个结果集,直到没有更多结果集为止。