如何使用受影响的行来衡量数据库中更新的行数
1. 什么是受影响的行?
向PHP页面更新数据库操作时,我们可以关注每次操作更新了多少行数据。 Affected Rows是指执行数据库操作后受影响的数据行数。它的值只能等于脚本使用查询后返回的行数。这意味着当操作成功时,affectrows返回数据库中刚刚被操作的记录行数。使用受影响的行是测量受查询语句执行影响的行数的有效方法,特别是对于 UPDATE、DELETE 和 INSERT INTO 语句。在 PHP 中,可以通过函数值 mysqli_affected_rows() 或 PDO::rowCount() 获取受影响的行。
2。使用 mysqli_affected_rows() 实现受影响行的测量
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);
}
3。使用 PDO::rowCount() 实现受影响行的测量
PDO 是 PHP 数据对象的缩写。它是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;
}
4。使用 Affected Rows 来测量 INSERT INTO 语句中的行数
使用INSERT INTO语句时,由于INSERT INTO语句只插入一行数据,因此默认受影响的行数为1。但是,如果使用 INSERT INTO 语句插入多行数据,则受影响的行将返回插入的行数。
//建立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);
}
5。使用 Affected Rows 来测量 DELETE 语句中的行数
使用DELETE语句删除一条或多条记录行。在这种情况下,受影响的行返回已删除的行数。
//建立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);
}
6。总结
通过影响行,可以第一时间知道数据库对表的操作影响的行数,这样可以更容易有针对性地排除一些问题。 同时,由于受影响的行是数据库返回的结果,因此其准确性可以得到保证,可以避免人为错误,例如手动检查操作结果时。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网