• 技术文章 >数据库 >mysql教程

    如何通过SQL聚合函数获得增删改的受影响行数?

    黄舟黄舟2017-05-20 17:13:48原创1155
    如何通过SQL聚合函数获得增删改的受影响行数?

    再做进一步动作前就能够计算出一个查询返回或者影响的行数通常都非常有用,希望分页显示结果或生成统计信息时,这种功能特别方便,那么获取受影响行数的功能是如何实现的呢?

    一、通过SQL聚合函数 COUNT统计下旬结果记录数

    COUNT 返回一个查询或者部分查询的行数,通常和DINSTINCT一起使用。SQL的聚合函数COUNT 被多种数据库广泛支持!

    二、通过 PDOStatement->rowCount()方法返回受影响行数

    PDOStatement->rowCount()方法获取到有多少行数被 UPDATE , INSERT 或者 DELECTE查询所影响。rowCount()方法在典型的 PHP应用程序中并不常见,但是它可以统计出在调用PDOStatement->execute后,有多少行受到影响。

    三、应用实例

    通过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['Submit']) && $_POST['Submit']=="查询") {
        $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(':id', $_POST['nr'], PDO::PARAM_STR);            //执行查询语句,并返回结果集
            $result = $stmt->execute();
            echo 'There are',$stmt->fetchColumn(),'rows returned.';
        }catch (PDOException $e){
            echo 'PDO Exception Caught.';
            echo 'Error with the database:<br>';
            echo 'SQL Query:',$sql;
            echo 'Error:'.$e->getMessage();
        }
    }
    ?>

    运行本实例,在文本框中输入要查询的数据库名称,单击“查询”按钮,即可显示出所查询到的结果行数,如下图:

    138.png

    php入门到就业线上直播课:进入学习

    说明:

    在使用UPDATE 和DELETE语句时,一定要随时确定添加了 WHERE子句,如果未添加WHERE子句,则则可能会更新数据库中的所有列或者删除表中的所有数据,无论哪一种情况都不是用户所希望看到的。

    以上就是如何通过SQL聚合函数获得增删改的受影响行数?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    千万级数据并发解决方案(理论+实战):点击学习

    Mysql单表千万级数据量的查询优化与性能分析

    Mysql主从原理及其在高并发系统中的应用

    上一篇:如何在Linux下安装和配置PHPmyadmin? 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 实例分析MySQL中pt-query-digest工具的使用记录• 简单聊聊MySQL中join查询• 深入理解MySQL索引优化器工作原理• MySQL子查询详细教程• MySQL关于Count函数的用法区别总结
    1/1

    PHP中文网