PDO::rollBack — 回溯一個交易(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
bool PDO::rollBack ( void )
回滾由PDO::beginTransaction() 發起的目前事務。如果沒有事務激活,將拋出一個PDOException 例外。
如果資料庫被設定為自動提交模式,此函數(方法)在回滾交易之後將恢復自動提交模式。
包括MySQL 在內的一些資料庫, 當在一個事務內有類似刪除或建立資料表等DLL 語句時,會自動導致一個隱含地提交。隱式地提交將無法回滾此交易範圍內的任何變更。
成功時回傳TRUE, 或在失敗時回傳FALSE。
下面例子在回滾變更之前開始一個交易並發出兩個修改資料庫的語句。但在MySQL 中,DROP TABLE 語句會自動提交事務,因此在此事務內的任何變更都不會被回滾。
<?php/* 開始一個事務,關閉自動提交*/$dbh->beginTransaction();/* 更改資料庫架構和資料*/$sth = $dbh->exec("DROP TABLE fruit");$sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'");/* 辨識錯誤且回滾變更*/$dbh->rollBack();/*此時資料庫連線恢復到自動提交模式*/?>