You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 8.2中能否用一次mysqli::execute_query同时获取订单数据与行数?

一次调用mysqli::execute_query获取订单总数及订单数组

当然可以通过一次调用实现需求,你不需要重复执行两次相同的SQL查询。mysqli::execute_query返回的是mysqli_result对象,这个对象同时支持行数统计和数据读取操作,只需把结果集对象保存到变量中,再从中分别提取所需数据即可。

修改后的代码如下:

$MySQLi = new mysqli("host", "username", "password", "database");

$sql = "select * from orders WHERE userid = ? ";

// 仅执行一次查询,将结果集存入变量
$result = $MySQLi->execute_query($sql, [$userid]);

// 从同一结果集中获取订单总数
$ordercount = $result->num_rows;
// 从同一结果集中获取订单数据数组
$orderdata = $result->fetch_all(MYSQLI_ASSOC);

// 可选:释放结果集资源(PHP会自动回收,但显式释放更严谨)
$result->free();

这样做的优势:

  • 减少一次数据库请求,提升整体性能
  • 避免两次查询之间数据库数据发生变化,导致订单总数和数据数组不一致的问题

内容的提问来源于stack exchange,提问作者Simon T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 10:30:55