MySQLi Query Fetching Single Row
このコード スニペットは、MySQL テーブルから 2 行のデータを取得することを目的としていますが、1 行だけを返します。 phpMyAdmin の SQL ステートメントは両方の行を正常に返しますが、問題のコードはこれに失敗します。
$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_row = $request_list_result->fetch_array(); echo $request_list['user_fullname'];
問題は、単一行のみを配列として取得する fetch_array の使用にあります。結果からすべての行をフェッチするには、目的の関数は fetch_all です。
$request_list = $request_list_result->fetch_all();
この関数は配列の配列を返します。ここで、各内部配列は結果セット内の行を表します。 fetch_all を使用すると、コードが両方の行に正しくアクセスできるようになります。
参考までに、fetch_all のドキュメントは http://php.net/manual/en/mysqli-result.fetch-all にあります。 php
以上がMySQLi クエリが 2 行を期待しているのに 1 行しか返さないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。