テーブル行をカウントするときに MySQLi の「count(*)」が 1 を返すのはなぜですか?

Patricia Arquette
リリース: 2024-11-07 13:37:03
オリジナル
334 人が閲覧しました

Why Does MySQLi's `count(*)` Return 1 When Counting Table Rows?

MySQLi の count(*) が予期せず 1 を返します

MySQLi を使用して MySQL テーブル内の行数をカウントすると、$result-> が次のような奇妙な現象に遭遇することがあります。 ;num_rows は一貫してカウント 1 を報告します。正しい値を調べてみましょう。

問題は、MySQLi が COUNT(*) クエリの結果をどのように処理するかにあります。行のセットを含む通常のクエリの結果とは異なり、COUNT(*) はカウントを含む 1 つの列を持つ 1 つの行を返します。

このカウントを正確に取得するには、1 つの行をフェッチする必要があります。結果セットから。次のコードは正しい使用法を示しています。

$result = $db->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
$count = $row[0];

echo "Count: $count";
ログイン後にコピー

最初 (唯一) の行をフェッチし、その最初の列にアクセスすることで、正しいカウントを取得します。 $result->num_rows を使用すると、結果セット内の行数を表すため、常に 1 が返されます。これは、COUNT(*) クエリの場合は 1 です。

結果に複数の行が含まれる通常のクエリの場合は覚えておいてください。 、$result->num_rows を使用するのが適切です。ただし、COUNT(*) クエリの場合は、常に上記のパターンに従って実際のカウントを取得してください。

以上がテーブル行をカウントするときに MySQLi の「count(*)」が 1 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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