MySQL PDO 执行语句时如何获取受影响行数
在使用PHP操作MySQL数据库时,PDO是比较常用的扩展库。而在执行一些操作语句时,有时需要知道该语句影响的行数。本文将介绍在使用PDO执行语句时,如何获取受影响行数。
阅读更多:MySQL 教程
PDO::exec()
PDO::exec()是一个执行SQL语句的方法,执行成功时返回影响的行数。它的基本语法为:
public int PDO::exec ( string $statement )
其中$statement为需要执行的语句,返回影响的行数。如果无法执行语句,则返回false。
比如以下代码:
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', 'password');
$sql = "UPDATE user SET age = 20 WHERE sex = 'female'";
$rowCount = $pdo->exec($sql);
echo "受影响行数:" . $rowCount;
该代码用PDO更新用户表user中性别为female的年龄为20,执行完毕后输出受影响行数。
PDOStatement::rowCount()
另一个获取受影响行数的PDO方法是PDOStatement::rowCount(),它返回上一个由这个PDOStatement对象执行的UPDATE、DELETE、INSERT等SQL语句所影响的行数。
它的基本语法为:
public int PDOStatement::rowCount ( void )
比如以下代码:
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', 'password');
$sql = "UPDATE user SET age = 20 WHERE sex = 'female'";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$rowCount = $stmt->rowCount();
echo "受影响行数:" . $rowCount;
该代码用PDO执行预处理后更新用户表user中性别为female的年龄为20,执行完毕后输出受影响行数。
总结
以上便是使用PDO执行语句时获取受影响行数的方法,可以根据具体需求选择使用哪种方法。需要注意的是,在使用PDO执行语句时,有时也可能出现0行受影响的情况,此时上面的方法都会返回0。