mysqli::next_result
(mysqli_next_result)从multi_query准备下一个结果
mysqli::next_result
PHP 5, PHP 7, PHP 8
mysqli::next_result 是用于处理多查询(multi-query)操作的函数。在执行多条 SQL 语句时,该函数用于准备获取下一条结果集。如果使用了 multi_query() 方法执行了多条语句,next_result() 需要与 store_result() 或 use_result() 一起使用,以依次获取每个查询的结果。
bool mysqli::next_result ( void )
如果成功准备了下一个结果集,则返回 true;如果没有更多结果集或发生错误,则返回 false。
<?php $mysqli = new mysqli("localhost", "user", "password", "database"); <p>if ($mysqli->connect_errno) {<br> die("连接失败: " . $mysqli->connect_error);<br> }</p> <p>$sql = "SELECT * FROM users; SELECT * FROM orders;";</p> <p>if ($mysqli->multi_query($sql)) {<br> do {<br> if ($result = $mysqli->store_result()) {<br> while ($row = $result->fetch_assoc()) {<br> print_r($row);<br> }<br> $result->free();<br> }<br> } while ($mysqli->next_result());<br> } else {<br> echo "执行查询失败: " . $mysqli->error;<br> }</p> <p>$mysqli->close();<br> ?><br>
这个示例中,使用 multi_query() 执行了两个 SELECT 查询。通过 do...while 循环,store_result() 依次获取每个查询结果,next_result() 准备下一个结果集。当没有更多结果时,循环结束。此函数适用于需要批量执行查询的场景,比如数据库初始化或批处理任务。