首页 >后端开发 >php教程 >为什么我的 MySQLi 查询只返回一行,而我期望返回多行?

为什么我的 MySQLi 查询只返回一行,而我期望返回多行?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-06 10:32:11365浏览

Why is My MySQLi Query Only Returning One Row When I Expect Multiple?

确定 MySQLi 查询仅检索一行的根本原因

当遇到 MySQLi 查询尽管期望多行但仅返回一行的问题时,有必要检查所涉及的代码。在所提供的情况下,查询旨在从 sb_buddies 和 sb_users 表中检索数据。

代码从两个表中选择列,并根据 buddy_requester_id 字段将它们连接起来。但是,后续行尝试使用 $request_list_result->fetch_array() 仅获取单行。

解决方案:使用 fetch_all() 检索多行

要检索多行,需要使用 fetch_all()方法:

$request_list_result = $mysqli->query("
SELECT buddy_requester_id, buddy_reciepient_id, user_id, user_fullname FROM sb_buddies
JOIN sb_users ON buddy_requester_id=user_id
WHERE buddy_status='0' AND buddy_reciepient_id='". get_uid() ."'");

$request_list_rows = $request_list_result->fetch_all();

echo $request_list_rows[0]['user_fullname'];

解释差异

  • fetch_array() 返回一行作为关联数组,其中列名称作为键。
  • fetch_all() 将所有行作为关联数组的数组返回,每个行代表一个

通过使用 fetch_all(),代码现在可以访问所有匹配行的数据,解决了只能获取一行的问题。

以上是为什么我的 MySQLi 查询只返回一行,而我期望返回多行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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