PHP mysqli::$affected_rows / mysqli_affected_rows() 函数返回最后一个 SELECT 、INSERT、UPDATE、REPLACE 或 DELETE 查询影响的行数。
语法
//面向对象风格
$mysqli->affected_rows;
//面向过程风格
mysqli_affected_rows(mysql)
参数
mysql | 必须。 仅适用于面向过程风格:指定 mysqli_connect() 或 mysqli_init() 返回的 mysqli 对象。 |
返回值
返回一个整数,可以解释如下:
- 大于零的整数表示受影响或检索的行数。
- 零表示没有更新任何记录UPDATE 语句,没有行与查询中的 WHERE 子句匹配,或者尚未执行任何查询。
- -1 表示查询返回错误或此函数调用了无缓冲的 SELECT 查询。
注意:如果受影响的行数大于最大 int 值(PHP_INT_MAX),则受影响的行数将以string形式返回。
示例:面向对象风格
下面的示例展示了mysqli::$affected_rows属性的用法。
<?php
//建立与数据库的连接
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_affected_rows) {
echo "Failed to connect to MySQL: ". $mysqli->connect_error;
exit();
}
//执行查询并显示受影响的行
$mysqli->query("SELECT * FROM Employee");
echo "Affected rows (SELECT): ". $mysqli->affected_rows;
$mysqli->query("DELETE FROM Employee WHERE Age>60");
echo "Affected rows (DELETE): ". $mysqli->affected_rows;
//关闭连接
$mysqli->close();
?>
上述代码的输出将类似于:
Affected rows (SELECT): 478
Affected rows (DELETE): 13
示例:面向过程风格
下面的示例显示mysqli_affected_rows()函数的用法 。
<?php
//建立与数据库的连接
$mysqli = mysqli_connect("localhost", "user", "password", "database");
if (mysqli_connect_affected_rows()) {
echo "Failed to connect to MySQL: ". mysqli_connect_error();
exit();
}
//执行查询并显示受影响的行
mysqli_query($mysqli, "SELECT * FROM Employee");
echo "Affected rows (SELECT): ". mysqli_affected_rows($mysqli);
mysqli_query($mysqli, "DELETE FROM Employee WHERE Age>60");
echo "Affected rows (DELETE): ". mysqli_affected_rows($mysqli);
//关闭连接
mysqli_close($mysqli);
?>
上述代码的输出将类似于:
Affected rows (SELECT): 478
Affected rows (DELETE): 13