Current Location: Home> Latest Articles>

gitbox 2025-06-22

mysqli_stmt::$affected_rows

适用 PHP 版本

PHP 5 ≥ 5.0.0, PHP 7, PHP 8 及更高版本

函数说明

mysqli_stmt::$affected_rowsmysqli_stmt 类的一个属性,用于获取最近一次执行的预处理语句所影响的行数。常用于执行 UPDATE、DELETE、INSERT 等操作后,确定数据库中实际改变了多少行数据。

函数语法

int mysqli_stmt::$affected_rows

注意这是一个属性,而非方法,不需要加括号调用。

返回值

  • 返回一个整数,表示受影响的行数。
  • 如果执行失败,则返回 -1。
  • 对于 SELECT 查询,返回值通常为 0。

示例

$mysqli = new mysqli("localhost", "user", "password", "database");
<p>$stmt = $mysqli->prepare("UPDATE users SET email = ? WHERE id = ?");<br>
$stmt->bind_param("si", $email, $id);</p>
<p>$email = "<a class="cursor-pointer" rel="noopener">[email protected]</a>";<br>
$id = 1;</p>
<p>$stmt->execute();</p>
<p>echo "受影响的行数: " . $stmt->affected_rows;</p>
<p>$stmt->close();<br>
$mysqli->close();<br>

示例代码说明

示例中,首先连接数据库,准备一个 UPDATE 语句,将指定用户的邮箱更新为新值。执行语句后,使用 $stmt->affected_rows 属性获取此次操作影响的行数,最后输出该数值。此数值表明实际修改了多少行数据。