您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

mysqli准备好的语句num_rows返回0,而查询返回大于0

mysqli准备好的语句num_rows返回0,而查询返回大于0

当您通过MysqLi执行一条语句时,直到您获取结果,结果才真正在PHP中出现- 结果由数据库引擎保存。因此,MysqLi_stmt对象无法知道执行后立即有多少结果。

像这样修改您的代码

$stmt->execute();
$stmt->store_result(); // pull results into PHP memory

// Now you can check $stmt->num_rows;

见手册

这不适用于您的特定示例,但是如果您的结果集很大,$stmt->store_result()则会消耗大量内存。在这种情况下,如果您关心的只是弄清楚是否至少返回了一个结果,请不要存储结果。相反,只需检查结果元数据是否不为空:

$stmt->execute();
$hasResult = $stmt->result_Metadata ? true : false;

见手册

MySQL 2022/1/1 18:14:05 有551人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶