PHP8 PDO::commit

2024-03-22 09:27 更新

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

PDO::commit — 提交一個事務

說明

public PDO::commit(): bool

提交一個事務,數(shù)據(jù)庫連接返回到自動提交模式直到下次調用 PDO::beginTransaction() 開始一個新的事務為止。

參數(shù) 

此函數(shù)沒有參數(shù)。

返回值 

成功時返回 true, 或者在失敗時返回 false。

錯誤/異常 

如果沒有活動中的事務,則拋出 PDOException。

注意: PDO::ATTR_ERRMODE 屬性不是 PDO::ERRMODE_EXCEPTION 時會拋出一個異常。

示例 

示例 #1 提交一個基礎事務

<?php
/* 開始一個事務,關閉自動提交 */
$dbh->beginTransaction();

/* 在全有或全無的基礎上插入多行記錄(要么全部插入,要么全部不插入) */
$sql = 'INSERT INTO fruit
    (name, colour, calories)
    VALUES (?, ?, ?)';

$sth = $dbh->prepare($sql);

foreach ($fruits as $fruit) {
    $sth->execute(array(
        $fruit->name,
        $fruit->colour,
        $fruit->calories,
    ));
}

/* 提交更改 */
$dbh->commit();

/* 現(xiàn)在數(shù)據(jù)庫連接返回到自動提交模式 */
?>

示例 #2 提交一個DDL事務

<?php
/*  開始一個事務,關閉自動提交 */
$dbh->beginTransaction();

/* Change the database schema */
$sth = $dbh->exec("DROP TABLE fruit");

/* 更改數(shù)據(jù)庫架構 */
$dbh->commit();

/* 現(xiàn)在數(shù)據(jù)庫連接返回到自動提交模式 */
?>
注意: 并不是所有數(shù)據(jù)庫都允許使用DDL語句進行事務操作:有些會產(chǎn)生錯誤,而其他一些(包括MySQL)會在遇到第一個DDL語句后就自動提交事務。

參見 

  • PDO::beginTransaction() - 啟動一個事務
  • PDO::rollBack() - 回滾事務
  • 事務和自動提交


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號