使用affectedrows来测量数据库更新行数的方法

一、什么是affectedrows?

在将数据库的操作更新到PHP页面上时,我们可能会关注每个操作更新了多少行数据。affectedrows是指数据库操作执行后,受影响的数据行数,它的值只能在脚本使用查询后所返回的行数相同。这意味着,操作成功时,affectedrows返回刚才在数据库中操作的记录行数。使用affectedrows是一种有效测量查询语句执行所影响的行数的方法,尤其是对于UPDATE、 DELETE和INSERT INTO语句,在PHP中,可以通过mysqli_ affected_ rows()或PDO::rowCount()函数获取affectedrows的值。

二、使用mysqli_affected_rows()实现affectedrows测量

mysqli连接对象是一种用于访问MySQL数据库服务器的连接对象。当使用mysqli操作数据库时,可以用mysqli_affected_ rows()函数返回前一次操作所影响的记录行数。

//建立mysqli连接对象
$conn = mysqli_connect('localhost','username','password','database');

if($conn) {
   //执行SQL语句
   $sql = "UPDATE user SET age =32 WHERE id =1";
   mysqli_query($conn,$sql);
  
   //获取更新行数
   $num = mysqli_affected_rows($conn);
  
   //输出更新行数
   echo $num; 

   //关闭mysqli连接
   mysqli_close($conn);
} 

三、使用PDO::rowCount()实现affectedrows测量

PDO是PHP Data Objects的缩写,是PHP5中一个为数据访问抽象和数据库交互提供了一种简单和一致的方法的轻量级框架。使用PDO连接数据库时,可以用PDO::rowCount()函数返回前一次操作所影响的记录行数。

//建立PDO连接对象
$conn =new PDO("mysql:host=localhost;dbname=database",'username','password');
  
if($conn){
   //执行SQL语句
   $sql = "UPDATE user SET age =32 WHERE id =1";
   $conn->exec($sql);
  
   //获取更新行数
   $num = $conn->rowCount();
  
   //输出更新行数
   echo $num;

   //关闭PDO连接
   $conn= null;
}

四、使用affectedrows测量INSERT INTO语句的行数

使用INSERT INTO语句时,默认情况下,受影响的行数为1,因为INSERT INTO语句只插入一行数据。但是,如果使用INSERT INTO语句插入多行数据,则affectedrows将返回插入的行数。

//建立mysqli连接对象
$conn = mysqli_connect('localhost','username','password','database');

if($conn) {
   //执行SQL语句
   $sql = "INSERT INTO user(id, name, age) VALUES
           ('2','zhangsan','18'),
           ('3','lisi','19'),
           ('4','wangwu','20')";
   mysqli_query($conn,$sql);
  
   //获取插入行数
   $num = mysqli_affected_rows($conn);
  
   //输出更新行数
   echo $num; 

   //关闭mysqli连接
   mysqli_close($conn);
} 

五、使用affectedrows测量DELETE语句的行数

使用DELETE语句可以删除一个或多个记录行。在这种情况下,affectedrows会返回删除的行数。

//建立mysqli连接对象
$conn = mysqli_connect('localhost','username','password','database');

if($conn) {
   //执行SQL语句
   $sql = "DELETE FROM user WHERE age >20";
   mysqli_query($conn,$sql);
  
   //获取删除行数
   $num = mysqli_affected_rows($conn);
  
   //输出删除行数
   echo $num;

   //关闭mysqli连接
   mysqli_close($conn);
} 

六、总结

使用affectedrows可以第一时间获知数据库操作对于表所影响的行数,这样便于针对性的排除一些问题, 同时,因为affectedrows是数据库返回的结果,所以它的准确性是可以保证的,能够避免像手动检查操作结果的时候这样的人为出错。

原创文章,作者:LURS,如若转载,请注明出处:https://www.506064.com/n/131615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
LURSLURS
上一篇 2024-10-03 23:46
下一篇 2024-10-03 23:46

相关推荐

  • 解决.net 6.0运行闪退的方法

    如果你正在使用.net 6.0开发应用程序,可能会遇到程序闪退的情况。这篇文章将从多个方面为你解决这个问题。 一、代码问题 代码问题是导致.net 6.0程序闪退的主要原因之一。首…

    编程 2025-04-29
  • ArcGIS更改标注位置为中心的方法

    本篇文章将从多个方面详细阐述如何在ArcGIS中更改标注位置为中心。让我们一步步来看。 一、禁止标注智能调整 在ArcMap中设置标注智能调整可以自动将标注位置调整到最佳显示位置。…

    编程 2025-04-29
  • Python创建分配内存的方法

    在python中,我们常常需要创建并分配内存来存储数据。不同的类型和数据结构可能需要不同的方法来分配内存。本文将从多个方面介绍Python创建分配内存的方法,包括列表、元组、字典、…

    编程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一个类的构造函数,在创建对象时被调用。在本篇文章中,我们将从多个方面详细讨论init方法的作用,使用方法以及注意点。 一、定义init方法 在Pyth…

    编程 2025-04-29
  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • 使用Vue实现前端AES加密并输出为十六进制的方法

    在前端开发中,数据传输的安全性问题十分重要,其中一种保护数据安全的方式是加密。本文将会介绍如何使用Vue框架实现前端AES加密并将加密结果输出为十六进制。 一、AES加密介绍 AE…

    编程 2025-04-29
  • 用不同的方法求素数

    素数是指只能被1和自身整除的正整数,如2、3、5、7、11、13等。素数在密码学、计算机科学、数学、物理等领域都有着广泛的应用。本文将介绍几种常见的求素数的方法,包括暴力枚举法、埃…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • openeuler安装数据库方案

    本文将介绍在openeuler操作系统中安装数据库的方案,并提供代码示例。 一、安装MariaDB 下面介绍如何在openeuler中安装MariaDB。 1、更新软件源 sudo…

    编程 2025-04-29
  • Python学习笔记:去除字符串最后一个字符的方法

    本文将从多个方面详细阐述如何通过Python去除字符串最后一个字符,包括使用切片、pop()、删除、替换等方法来实现。 一、字符串切片 在Python中,可以通过字符串切片的方式来…

    编程 2025-04-29

发表回复

登录后才能评论