PHP MySQLi 函数

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