PHP 5 >= 5.1.0, PHP 7, PHP 8 及以上版本
PDOStatement::rowCount() 方法返回受最后执行的 SQL 语句影响的行数。通常用于执行 UPDATE、DELETE 或 INSERT 语句后,获取受影响的记录条数。
注意:对于某些数据库驱动,使用 SELECT 语句时,rowCount() 可能不会返回预期的行数,具体行为取决于数据库驱动实现。
public PDOStatement::rowCount(): int
返回一个整数,表示受最后执行的 SQL 语句影响的行数。如果该语句没有影响任何行,则返回 0。
以下示例展示了如何使用 PDOStatement::rowCount() 获取 UPDATE 操作影响的行数。
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=testdb', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare("UPDATE users SET status = 'active' WHERE last_login < DATE_SUB(NOW(), INTERVAL 1 YEAR)");
$stmt->execute();
$affectedRows = $stmt->rowCount();
echo "更新了 " . $affectedRows . " 行。";
} catch (PDOException $e) {
echo "错误: " . $e->getMessage();
}
?>
本示例连接一个 MySQL 数据库,准备一条 UPDATE 语句,将所有一年内未登录的用户状态改为“active”。执行语句后,通过调用 rowCount() 方法获取更新影响的行数,并输出结果。