PHP8 PDOStatement::rowCount

2024-03-26 09:50 更新

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

PDOStatement::rowCount — 返回受上一個(gè) SQL 語(yǔ)句影響的行數(shù)

說(shuō)明

public PDOStatement::rowCount(): int

PDOStatement::rowCount() 返回上一個(gè)由對(duì)應(yīng)的 PDOStatement 對(duì)象執(zhí)行 DELETE、INSERT 或 UPDATE 語(yǔ)句受影響的行數(shù)。

對(duì)于生成結(jié)果集的語(yǔ)句,例如 SELECT,行為是未定義的,并且對(duì)于每個(gè)驅(qū)動(dòng)程序可能不同。某些數(shù)據(jù)庫(kù)可能會(huì)返回該語(yǔ)句生成的行數(shù)(例如緩沖模式下的 MySQL),但不能保證所有數(shù)據(jù)庫(kù)都具有這種行為,并且對(duì)于可移植的應(yīng)用不應(yīng)依賴于此方式。

注意:對(duì) SQLite 驅(qū)動(dòng)程序,此方法始終返回“0”(零),并且 PostgreSQL 驅(qū)動(dòng)程序僅當(dāng)將 PDO::ATTR_CURSOR 語(yǔ)句屬性設(shè)置為 PDO::CURSOR_SCROLL 時(shí)返回“0”(零)。

參數(shù) 

此函數(shù)沒(méi)有參數(shù)。

返回值 

返回行數(shù)。

錯(cuò)誤/異常 

如果屬性 PDO::ATTR_ERRMODE 設(shè)置為 PDO::ERRMODE_WARNING,則發(fā)出級(jí)別為 E_WARNING 的錯(cuò)誤。

如果屬性 PDO::ATTR_ERRMODE 設(shè)置為 PDO::ERRMODE_EXCEPTION,則拋出 PDOException。

示例 

示例 #1 返回刪除的行數(shù)

PDOStatement::rowCount() 返回受 DELETE、INSERT 或 UPDATE 語(yǔ)句影響的行數(shù)。

<?php
/*  從 FRUIT 數(shù)據(jù)表中刪除所有行 */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();

/*  返回被刪除的行數(shù) */
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.

示例 #2 計(jì)算由一個(gè) SELECT 語(yǔ)句返回的行數(shù)

對(duì)于大多數(shù)數(shù)據(jù)庫(kù),PDOStatement::rowCount() 不能返回受一條 SELECT 語(yǔ)句影響的行數(shù)。替代的方法是,使用 PDO::query() 來(lái)發(fā)出一條和原打算中的 SELECT 語(yǔ)句有相同條件表達(dá)式的 SELECT COUNT(*) 語(yǔ)句,然后用 PDOStatement::fetchColumn() 來(lái)取得匹配的行數(shù)。

<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
$res = $conn->query($sql);
$count = $res->fetchColumn();

print "There are " .  $count . " matching records.";

以上示例的輸出類似于:

There are 2 matching records.

參見(jiàn) 

  • PDOStatement::columnCount() - 返回結(jié)果集中的列數(shù)
  • PDOStatement::fetchColumn() - 從結(jié)果集中的下一行返回單獨(dú)的一列
  • PDO::query() - 預(yù)處理并執(zhí)行沒(méi)有占位符的 SQL 語(yǔ)句


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)