ホームページ >データベース >mysql チュートリアル >PHP で MySQL クエリが 1 行しか返さないのはなぜですか? それを修正するにはどうすればよいですか?
単一行の結果を生成する MySQL の問題の特定
PHP を使用して SQL クエリを実行すると、MySQL がデータベースに一致するレコードが複数含まれている場合でも、単一行のみが返されます。これにより、予期しない結果が発生する可能性があり、トラブルシューティングが困難になる場合があります。
この例では、PHP スクリプトは、fastsearch という名前のテーブルに対して、タグ列が特定の値と一致する行をクエリしています。ただし、このコードでは、結果セットの最初の行のみを取得する mysql_fetch_assoc() 関数を使用しているため、レコードが 1 つだけ表示されます。
単一行取得の問題の解決
この問題を修正し、データベースから一致する行をすべてフェッチするには、PHP コードを次のように変更します。
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); while ($row = mysql_fetch_assoc($query)) { print_r($row); }
ここでは、while ループを利用して結果セットを反復処理します。 mysql_fetch_assoc() 関数はループ内で呼び出され、実行されるたびに次の行を返します。ループはフェッチする行がなくなるまで継続し、一致するレコードをすべて表示します。
この解決策は、次の 2 つの一般的な問題に対処します:
以上がPHP で MySQL クエリが 1 行しか返さないのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。