PHP で MySQL テーブルから行数を取得する方法
MySQL テーブル内の行をカウントし、結果は $count になりましたが、問題が発生しました。この記事では、PHP の手続き型スタイルを使用してこれを効果的に達成する方法を検討します。
手続き型行カウント
行数を取得するには、次の変更を検討してください。コード:
$sql = "SELECT COUNT(*) FROM news"; $result = mysqli_query($con, $sql); $count = mysqli_fetch_assoc($result)['COUNT(*)']; echo $count;
このバージョンでは、COUNT(*) の結果に直接アクセスします。 mysqli_fetch_assoc() によって返された連想配列からの適切な列。
代替メソッド
上記のメソッドとは別に、いくつかの追加オプションがあります:
$sql = "SELECT COUNT(*) AS cnt FROM news"; $result = mysqli_query($con, $sql); $count = mysqli_fetch_assoc($result)['cnt']; echo $count;
$sql = "SELECT COUNT(*) FROM news"; $result = mysqli_query($con, $sql); $count = mysqli_fetch_row($result)[0]; echo $count;
$sql = "SELECT COUNT(*) FROM news"; $result = mysqli_query($con, $sql); $count = mysqli_fetch_column($result); echo $count;
mysqli_num_rows の使用を避ける
一般的なアドバイスに反して、mysqli_num_rows は行カウントに使用すべきではありません。一致するレコードをすべて取得しますが、非効率的でリソースを大量に消費する可能性があります。
パラメータ化されたクエリのプリペアド ステートメント
クエリに動的変数が含まれる場合は、プリペアド ステートメントの使用を検討してください。
$sql = "SELECT COUNT(*) FROM news WHERE category=?"; $stmt = $con->prepare($sql); $stmt->bind_param('s', $category); $stmt->execute(); $count = $stmt->get_result()->fetch_row()[0]; echo $count;
以上がPHP を使用して MySQL テーブルの行を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。