ホームページ >バックエンド開発 >PHPチュートリアル >MySQLi クエリが 1 行しか返さないのはなぜですか?

MySQLi クエリが 1 行しか返さないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-14 12:11:01391ブラウズ

Why Does My MySQLi Query Only Return One Row?

MySQLi Query Only Returns One Row

提供されたコードでは、作成者は MySQLi を使用してデータベースから複数の行をフェッチしようとしていますが、クエリは単一行のみを返します。これは、SQL クエリが phpMyAdmin で直接実行されると 2 行を返すことを確認しているにもかかわらずです。

問題

問題は、MySQLi からデータをフェッチするために使用されるメソッドにあります。結果オブジェクト。コードでは、結果セットの最初の行のみを取得する fetch_array() が使用されます。すべての行を取得するには、代わりに 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 = $request_list_result->fetch_all();

// Now $request_list holds all rows in the result set

追加リソース

MySQLi 結果セットからのデータの取得の詳細については、次を参照してください。リソース:

  • [mysqli_result::fetch_all()](https://www.php.net/manual/en/mysqli-result.fetch-all.php)

以上がMySQLi クエリが 1 行しか返さないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。