首頁 >後端開發 >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