详解PHP中的mysqli_affected_rows()方法

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()函数,这些行数就可以准确地获得。

后端开发标签