sql >> データベース >  >> RDS >> Mysql

PHPを使用してMySQLテーブルの行数を取得するにはどうすればよいですか?

    COUNT(*)の値を取得する方法にはいくつかのオプションがあります SQLから。最も簡単な3つはおそらくこれです:

    $sql = "SELECT COUNT(*) FROM news";
    $result = mysqli_query($con, $sql);
    $count = mysqli_fetch_assoc($result)['COUNT(*)'];
    echo $count;
    

    または列エイリアスを使用する:

    $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;
    

    PHP 8.1を使用している場合は、さらに簡単に行うことができます:

    $sql = "SELECT COUNT(*) FROM news";
    $result = mysqli_query($con, $sql);
    $count = mysqli_fetch_column($result);
    echo $count;
    // or using OO style
    echo $con->query("SELECT COUNT(*) FROM news")->fetch_column();
    

    mysqli_num_rowsは使用しないでください Web上のいくつかの場所で提案されているように、データベース内のレコードをカウントします。この関数はほとんど使用されておらず、レコードのカウントは間違いなくそれらの1つではありません。 mysqli_num_rowsの使用 MySQLにすべてを取得するように依頼します データベースからの一致するレコード。これは非常にリソースを消費する可能性があります。レコードをカウントするジョブをMySQLに委任してから、私の答えに示されているように、PHPで戻り値を取得する方がはるかに優れています。

    また、コードをよりクリーンで読みやすくするOOPを学ぶことをお勧めします。 OOPでも同じことが、次のように実行できます。

    $sql = "SELECT COUNT(*) FROM news";
    $count = $con->query($sql)->fetch_row()[0];
    echo $count;
    

    クエリで変数を使用する場合は、同様のことを実行できますが、プリペアドステートメントを使用します。

    $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;
    


    1. sp_プレフィックスはまだノーノーですか?

    2. PostgreSQLの日付に日を追加する

    3. Android-JobSchedulerのsetPeriodicは機能しません

    4. ローカルで提供されたリストを使用して、リモートのpostgresqlデータベースからレコードを削除する