ホームページ  >  記事  >  データベース  >  SQL 集計関数による追加、削除、変更の影響を受ける行数を取得するにはどうすればよいですか?

SQL 集計関数による追加、削除、変更の影響を受ける行数を取得するにはどうすればよいですか?

黄舟
黄舟オリジナル
2017-05-20 17:13:482060ブラウズ

SQL 集計関数を使用して、追加、削除、変更の影響を受ける行数を取得するにはどうすればよいですか?

さらなるアクションを実行する前に、クエリによって返された行数、またはクエリによって影響を受けた行数を計算できることは、通常、この関数は、結果をページに表示したり、統計情報を生成したりする場合に特に便利です。影響を受ける行の数 これはどのようにして達成されるのでしょうか?

1. SQL 集計関数 COUNT を使用して、遅延結果レコードの数をカウントします。

COUNT は、クエリまたはクエリの一部の行数を返し、通常は DINSTINCT と一緒に使用されます。 SQL の集計関数 COUNT は、さまざまなデータベースで広くサポートされています。

2. PDOStatement->rowCount() メソッド

PDOStatement->rowCount() メソッドを通じて影響を受ける行の数を返し、UPDATE、INSERT、または DELECTE クエリによって影響を受ける行の数を取得します。 rowCount() メソッドは一般的な PHP アプリケーションでは一般的ではありませんが、PDOStatement->execute を呼び出した後に影響を受けた行数をカウントできます。

3. アプリケーション例

SQL 集計関数 COUNT を通じてクエリによって返されたレコードの数をカウントします。 具体的なコードは次のとおりです。

<form action="5.php" name="form1" method="post">
    查询关键字:<input type="text" name="username" id="nr">
    <input type="submit" name="Submit" value="查询">
</form>
<?php
header("Content-Type:text/html; charset=utf-8");    //设置页面的编码格式
if(isset($_POST[&#39;Submit&#39;]) && $_POST[&#39;Submit&#39;]=="查询") {
    $dbms = "mysql";                                  // 数据库的类型
    $dbName ="php_cn";                                //使用的数据库名称
    $user = "root";                                   //使用的数据库用户名
    $pwd = "root";                                    //使用的数据库密码
    $host = "localhost";                              //使用的主机名称
    $dsn = "$dbms:host=$host;dbname=$dbName";
    try {
        $dbh = new PDO($dsn, $user, $pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = "SELECT COUNT(*) FROM user WHERE username = :id";//需要执行的sql语句
        $stmt = $dbh->prepare($sql);//准备查询语句
        $stmt->bindParam(&#39;:id&#39;, $_POST[&#39;nr&#39;], PDO::PARAM_STR);            //执行查询语句,并返回结果集
        $result = $stmt->execute();
        echo &#39;There are&#39;,$stmt->fetchColumn(),&#39;rows returned.&#39;;
    }catch (PDOException $e){
        echo &#39;PDO Exception Caught.&#39;;
        echo &#39;Error with the database:<br>&#39;;
        echo &#39;SQL Query:&#39;,$sql;
        echo &#39;Error:&#39;.$e->getMessage();
    }
}
?>

この例を実行するには、データベースの名前を入力します。テキスト ボックスにクエリを入力し、[クエリ] ボタンをクリックすると、以下に示すようにクエリ結果の行数が表示されます。

SQL 集計関数による追加、削除、変更の影響を受ける行数を取得するにはどうすればよいですか?

注:

UPDATE ステートメントと DELETE ステートメントを使用する場合は、必ず WHERE 句を追加してください。 WHERE 句が追加されていない場合は、いつでもデータベース内のすべての列が更新されるか、テーブル内のすべてのデータが削除される可能性があります。どちらの場合も、それはユーザーが望むものではありません。

以上がSQL 集計関数による追加、削除、変更の影響を受ける行数を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。