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

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签