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

PDOを使用した行数

    $sql = "SELECT count(*) FROM `table` WHERE foo = ?"; 
    $result = $con->prepare($sql); 
    $result->execute([$bar]); 
    $number_of_rows = $result->fetchColumn(); 
    

    これを行うための最も洗練された方法ではありません。さらに、追加のクエリが必要です。

    PDOにはPDOStatement::rowCount()があります 、明らかにない MySqlで動作します。なんて痛い。

    PDOドキュメントから:

    ほとんどのデータベースでは、PDOStatement ::rowCount()はSELECTステートメントの影響を受ける行数を返しません。代わりに、PDO ::query()を使用して目的のSELECTstatementと同じ述語でSELECTCOUNT(*)ステートメントを発行し、次にPDOStatement ::fetchColumn()を使用して返される行数を取得します。その後、アプリケーションは正しいアクションを実行できます。

    編集:上記のコード例では、プリペアドステートメントを使用しています。これは、多くの場合、行をカウントするためには不要であるため、次のようになります。

    $nRows = $pdo->query('select count(*) from blah')->fetchColumn(); 
    echo $nRows;
    


    1. Oracleで変数を宣言して表示する方法

    2. 値ごとのCOUNTによる順序

    3. Hiveクエリ言語の主キーとインデックスは可能かどうか?

    4. LinuxでMySQLまたはMariaDBのルートパスワードを変更する方法