PDO::exec

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

PDO::exec 執(zhí)行一條 SQL 語(yǔ)句,并返回受影響的行數(shù)

說(shuō)明

PDO::exec(string $statement): int

PDO::exec() 在一個(gè)單獨(dú)的函數(shù)調(diào)用中執(zhí)行一條 SQL 語(yǔ)句,返回受此語(yǔ)句影響的行數(shù)。

PDO::exec() 不會(huì)從一條 SELECT 語(yǔ)句中返回結(jié)果。對(duì)于在程序中只需要發(fā)出一次的 SELECT 語(yǔ)句,可以考慮使用 PDO::query()。對(duì)于需要發(fā)出多次的語(yǔ)句,可用 PDO::prepare() 來(lái)準(zhǔn)備一個(gè) PDOStatement 對(duì)象并用 PDOStatement::execute() 發(fā)出語(yǔ)句。

參數(shù)

statement

要被預(yù)處理和執(zhí)行的 SQL 語(yǔ)句。

查詢中的數(shù)據(jù)應(yīng)該被 妥善地轉(zhuǎn)義 。

返回值

PDO::exec() 返回受修改或刪除 SQL 語(yǔ)句影響的行數(shù)。如果沒(méi)有受影響的行,則 PDO::exec() 返回 0。

警告

此函數(shù)可能返回布爾值 false,但也可能返回等同于 false 的非布爾值。請(qǐng)閱讀 布爾類型章節(jié)以獲取更多信息。應(yīng)使用 === 運(yùn)算符來(lái)測(cè)試此函數(shù)的返回值。

下面例子依賴 PDO::exec() 的返回值是不正確的,其中受影響行數(shù)為 0 的語(yǔ)句會(huì)導(dǎo)致調(diào)用 die()

<?php
$db
->exec() or die(print_r($db->errorInfo(), true));
?>

范例

示例 #1 發(fā)出一條 DELETE 語(yǔ)句

計(jì)算由一條不帶 WHERE 字句的 DELETE 語(yǔ)句刪除的行數(shù)。

<?php
$dbh 
= new PDO('odbc:sample''db2inst1''ibmdb2');

/*  刪除 FRUIT 數(shù)據(jù)表中滿足條件的所有行 */
$count $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");

/* 返回被刪除的行數(shù) */
print("Deleted $count rows.\n");
?>

以上例程會(huì)輸出:

Deleted 1 rows.

參見(jiàn)

  • PDO::prepare() - 準(zhǔn)備要執(zhí)行的語(yǔ)句,并返回語(yǔ)句對(duì)象
  • PDO::query() - 執(zhí)行 SQL 語(yǔ)句,以 PDOStatement 對(duì)象形式返回結(jié)果集
  • PDOStatement::execute() - 執(zhí)行一條預(yù)處理語(yǔ)句