1. 什么是mysqli_affected_rows()方法
mysqli_affected_rows()是一种MySQLi扩展的库函数,用来获取并返回最后一个操作影响到的行的数目,通常是insert、update、delete语句执行成功后的条目数。
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
if (!$link) {
die('无法连接数据库: ' . mysqli_error($link));
}
$sql = "UPDATE Country SET Population = 99999999 WHERE Code='CHN'";
mysqli_query($link, $sql);
printf("执行受影响的行数: %d\n", mysqli_affected_rows($link));
mysqli_close($link);
?>
在上例中,mysqli_affected_rows()将返回更新操作后的受影响的行数(执行结果应为1)。
2. mysqli_affected_rows()用法
2.1 关于影响行数的获取时机
mysqli_affected_rows()方法只能在当前连接中获取最近一个数据库操作的受影响行数,这意味着如果在之前执行的MySQL语句发生了两个或两个以上的更改,则必须在任何其他请求之前获取,否则将无法读取正确的行数信息。
2.2 可用的SQL语句
mysqli_affected_rows()可用于以下SQL语句:
INSERT
UPDATE
DELETE
REPLACE
TRUNCATE
3. 使用mysqli_affected_rows()的例子
以下是一个更实际的例子,其目的是删除一个ID为3的用户。请注意,我们相信有足够的行(只有1行)来做出该操作。使用以下示例代码:
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
if (!$link) {
die('无法连接数据库: ' . mysqli_error($link));
}
$sql = "DELETE FROM User WHERE ID=3";
mysqli_query($link, $sql);
printf("执行受影响的行数: %d\n", mysqli_affected_rows($link));
mysqli_close($link);
?>
执行结果应返回受影响的行数(执行结果应为1)。
4. 结论
mysqli_affected_rows()函数可以达到在PHP中获取MySQL数据库中刚刚运行的语句的受影响行数。 只要将SQL语句传递给mysqli_query()函数,这些行数就可以准确地获得。