PHP8 PDO::exec

2024-03-22 09:27 更新

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

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

說明

public PDO::exec(string $statement): int|false

PDO::exec() 在單獨的函數(shù)調(diào)用中執(zhí)行 SQL 語句,返回受此語句影響的行數(shù)。

PDO::exec() 不會從 SELECT 語句中返回結果。對于在程序中只需要發(fā)出一次的 SELECT 語句,可以考慮使用 PDO::query()。對于需要發(fā)出多次的語句,可用 PDO::prepare() 來預處理 PDOStatement 對象并用 PDOStatement::execute() 發(fā)出語句。

參數(shù) 

statement

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

查詢中的數(shù)據(jù)應正確轉(zhuǎn)義。

返回值 

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

警告

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

下列示例錯誤依賴 PDO::exec() 的返回值,其中受影響行數(shù)為 0 的語句會導致調(diào)用 die():

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

錯誤/異常 

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

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

示例 

示例 #1 發(fā)出 DELETE 語句

計算不帶 WHERE 子句的 DELETE 語句刪除的行數(shù)。

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

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

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

以上示例會輸出:

Deleted 1 rows.

參見 

  • PDO::prepare() - 預處理要執(zhí)行的語句,并返回語句對象
  • PDO::query() - 預處理并執(zhí)行沒有占位符的 SQL 語句
  • PDOStatement::execute() - 執(zhí)行預處理語句


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號