W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::commit — 提交一個(gè)事務(wù)
public PDO::commit(): bool
提交一個(gè)事務(wù),數(shù)據(jù)庫連接返回到自動(dòng)提交模式直到下次調(diào)用 PDO::beginTransaction() 開始一個(gè)新的事務(wù)為止。
此函數(shù)沒有參數(shù)。
成功時(shí)返回 true, 或者在失敗時(shí)返回 false。
如果沒有活動(dòng)中的事務(wù),則拋出 PDOException。
注意: PDO::ATTR_ERRMODE 屬性不是 PDO::ERRMODE_EXCEPTION 時(shí)會拋出一個(gè)異常。
示例 #1 提交一個(gè)基礎(chǔ)事務(wù)
<?php
/* 開始一個(gè)事務(wù),關(guān)閉自動(dòng)提交 */
$dbh->beginTransaction();
/* 在全有或全無的基礎(chǔ)上插入多行記錄(要么全部插入,要么全部不插入) */
$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ù)庫連接返回到自動(dòng)提交模式 */
?>
示例 #2 提交一個(gè)DDL事務(wù)
<?php
/* 開始一個(gè)事務(wù),關(guān)閉自動(dòng)提交 */
$dbh->beginTransaction();
/* Change the database schema */
$sth = $dbh->exec("DROP TABLE fruit");
/* 更改數(shù)據(jù)庫架構(gòu) */
$dbh->commit();
/* 現(xiàn)在數(shù)據(jù)庫連接返回到自動(dòng)提交模式 */
?>
注意: 并不是所有數(shù)據(jù)庫都允許使用DDL語句進(jìn)行事務(wù)操作:有些會產(chǎn)生錯(cuò)誤,而其他一些(包括MySQL)會在遇到第一個(gè)DDL語句后就自動(dòng)提交事務(wù)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: