PHP を使用して MySQL テーブルから正確な行数を取得する方法
MySQL テーブル内の行数を取得することは、データベースの扱い。 PHP では、特に手続き型コードを好むユーザー向けに、このためのオプションをいくつか提供しています。
エラー:
よくあるエラーの 1 つは、数値の代わりに「配列」という単語を取得することです。 。これは、連想配列を返す mysqli_fetch_assoc() を使用するときに発生します。
解決策 1: 配列インデックスの使用
これを解決するには、列名に対応する配列インデックスにアクセスします。 。例:
$count = mysqli_fetch_assoc($result)['COUNT(*)'];
解決策 2: 列エイリアスの使用
または、SQL クエリで count 列のエイリアスを指定できます:
$sql = "SELECT COUNT(*) AS cnt FROM news"; $count = mysqli_fetch_assoc($result)['cnt'];
解決策 3: 数値を使用する配列
別のオプションは、mysqli_fetch_row() を使用して数値配列を取得することです。
$count = mysqli_fetch_row($result)[0];
PHP 8.1 最適化
を使用している場合PHP 8.1 以降では、操作:
$count = mysqli_fetch_column($result);
mysqli_num_rows の使用を避ける
mysqli_num_rows を使用したくなるかもしれませんが、この関数には重大な制限があるため、行をカウントする場合は避けるべきです。
おっとアプローチ
オブジェクト指向プログラミングを好む人は、同じコードを次のように記述できます:
$count = $con->query($sql)->fetch_row()[0];
準備されたステートメント
変数を含むクエリを使用する場合は、セキュリティと効率を向上させるためにプリペアド ステートメントを使用する必要があります:
$stmt = $con->prepare("SELECT COUNT(*) FROM news WHERE category=?"); $stmt->bind_param('s', $category); $stmt->execute(); $count = $stmt->get_result()->fetch_row()[0];
以上がPHP を使用して MySQL 行を正確にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。