ホームページ > データベース > mysql チュートリアル > PHP の MySQL クエリが 1 行しか返さないのはなぜですか?

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

Barbara Streisand
リリース: 2024-12-01 03:54:11
オリジナル
698 人が閲覧しました

Why Does My MySQL Query in PHP Only Return One Row?

MySQL クエリが 1 行のみを返す: デバッグと解決

MySQL を使用しているときに、PHP スクリプトが 1 行だけを取得するインスタンスが発生する困惑するかもしれません。この問題は、クエリ自体は有効でも、スクリプトの実装により予期されるすべての行を取得できない場合に発生します。

問題のトラブルシューティング

提供されている PHP コードを検討してください。 fastsearch テーブルから行を取得するクエリを実行します:

$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5");
$query2 = mysql_fetch_assoc($quer);
print_r($query2);
ログイン後にコピー

SQLクエリは複数の行を返しますが、スクリプトでは 1 行のみが表示されます。この動作は、mysql_fetch_assoc() がデフォルトで単一行のみをフェッチするために発生します。すべての行を取得するには、ループを使用してそれらの行を反復処理する必要があります。

解決策: while ループを使用して複数の行を取得する

修正されたコード スニペットでは、 while ループでクエリ結果を繰り返し処理し、各行を出力します。

$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5");

while ($row = mysql_fetch_assoc($query)) {
    print_r($row);
}
ログイン後にコピー

この更新されたコードでは、 mysql_fetch_assoc() がループ内で呼び出され、$row 変数に現在の行が割り当てられます。これにより、ループがクエリ結果の各行を反復処理できるようになり、すべての行を出力できるようになります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート