PHP PDOStatement::rowCount讲解
pdostatement::rowcount
pdostatement::rowcount — 返回受上一个 sql 语句影响的行数(php 5 >= 5.1.0, pecl pdo >= 0.1.0)
说明
语法
int pdostatement::rowcount ( void )
pdostatement::rowcount()
返回上一个由对应的 pdostatement 对象执行delete、 insert、或 update 语句受影响的行数。
如果上一条由相关 pdostatement 执行的 sql 语句是一条 select 语句,有些数据可能返回由此语句返回的行数。但这种方式不能保证对所有数据有效,且对于可移植的应用不应依赖于此方式。
返回值
返回行数。
实例
返回删除的行数
pdostatement::rowcount()
返回受 delete、insert、或 update 语句影响的行数。
<?php /* 从 fruit 数据表中删除所有行 */ $del = $dbh->prepare('delete from fruit'); $del->execute(); /* 返回被删除的行数 */ print("return number of rows that were deleted:\n"); $count = $del->rowcount(); print("deleted $count rows.\n"); ?>
以上实例输出:
return number of rows that were deleted:
deleted 9 rows.
计算由一个 select 语句返回的行数
对于大多数数据库,pdostatement::rowcount()
不能返回受一条 select 语句影响的行数。替代的方法是,使用pdo::query()
来发出一条和原打算中的select语句有相同条件表达式的select count(*)
语句,然后用 pdostatement::fetchcolumn()
来取得下一行。这样应用程序才能正确执行。
<?php $sql = "select count(*) from fruit where calories > 100"; if ($res = $conn->query($sql)) { /* 检查符合 select 语句的行数 */ if ($res->fetchcolumn() > 0) { /* 发出一条真正的 select 语句并操作返回的结果 */ $sql = "select name from fruit where calories > 100"; foreach ($conn->query($sql) as $row) { print "name: " . $row['name'] . "\n"; } } /* 没有匹配的行 -- 执行其他 */ else { print "no rows matched the query."; } } $res = null; $conn = null; ?>
以上实例输出结果为:
apple
banana
orange
pear
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
上一篇: SQL Server 2005 还原数据库错误解决方法
下一篇: 香蕉营养成分有什么