首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PDOStatement::rowCount

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement :: rowCount - 返回最后一条SQL语句影响的行数

描述

代码语言:javascript
复制
public int PDOStatement::rowCount ( void )

PDOStatement :: rowCount()返回受相应PDOStatement对象执行的最后一个DELETE,INSERT或UPDATE语句影响的行数。

如果由关联的PDOStatement 执行的最后一条SQL语句是SELECT语句,则某些数据库可能会返回该语句返回的行数。但是,不能保证所有数据库的这种行为,并且不应该依赖便携式应用程序。

返回值

返回行数。

示例

示例#1 返回删除的行数

PDOStatement :: rowCount()返回受DELETE,INSERT或UPDATE语句影响的行数。

代码语言:javascript
复制
<?php
/* Delete all rows from the FRUIT table */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();

/* Return number of rows that were deleted */
print("Return number of rows that were deleted:\n");
$count = $del->rowCount();
print("Deleted $count rows.\n");
?>

上面的例子将输出:

代码语言:javascript
复制
Return number of rows that were deleted:
Deleted 9 rows.

示例#2 计算SELECT语句返回的行

对于大多数数据库来说,PDOStatement :: rowCount()不会返回受SELECT语句影响的行数。相反,使用PDO :: query()来发出一个SELECT COUNT(*)语句,其谓词与您想要的SELECT语句相同,然后使用PDOStatement :: fetchColumn()来检索将返回的行数。然后您的应用程序可以执行正确的操作。

代码语言:javascript
复制
<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
if ($res = $conn->query($sql)) {

    /* Check the number of rows that match the SELECT statement */
  if ($res->fetchColumn() > 0) {

        /* Issue the real SELECT statement and work with the results */
         $sql = "SELECT name FROM fruit WHERE calories > 100";
       foreach ($conn->query($sql) as $row) {
           print "Name: " .  $row['NAME'] . "\n";
         }
    }
    /* No rows matched -- do something else */
  else {
      print "No rows matched the query.";
    }
}

$res = null;
$conn = null;
?>

上面的例子将输出:

代码语言:javascript
复制
apple
banana
orange
pear

扩展内容

  • PDOStatement :: columnCount() - 返回结果集中的列数
  • PDOStatement :: fetchColumn() - 返回结果集的下一行中的单个列
  • PDO :: query() - 执行一条SQL语句,返回一个结果集作为PDOStatement对象

← PDOStatement::nextRowset

PDOStatement::setAttribute →

扫码关注腾讯云开发者

领取腾讯云代金券