PDO->rollBack()
(no version information, might be only in CVS)
PDO->rollBack() --
トランザクションをロールバックする
説明
class
PDO {
bool
rollBack ( void )
}
PDO->beginTransaction() によって開始された
現在のトランザクションをロールバックします
有効なトランザクションがない場合にこのメソッドをコールすると
エラーになります。
データベースがオートコミットモードに設定されている場合、
この関数はトランザクションをロールバックした後に
オートコミットモードを元に戻します。
MySQL を含むいくつかのデータベースでは、DROP TABLE や CREATE TABLE
のようなデータベース定義言語 (DDL) ステートメントがトランザクション中に
発行される場合、暗黙的なコミットが自動的に発行されます。
この暗黙的なコミットにより、そのトランザクション境界で
他のあらゆる変更をロールバックすることができなくなるでしょう。
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
例
例 1. トランザクションをロールバックする
以下の例は、トランザクションを開始し、
変更をロールバックする前にデータベースを修正する
2 つのステートメントを発行します。
しかしながら MySQL では、DROP TABLE ステートメントは
自動的にトランザクションをコミットするので、
トランザクション中のどの変更もロールバックされません。
<?php /* トランザクションを開始する。オートコミットがオフになる */ $dbh->beginTransaction();
/* データベーススキーマとデータを変更する */ $sth = $dbh->exec("DROP TABLE fruit"); $sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'");
/* ミスに気づき、変更をロールバックする */ $dbh->rollBack();
/* データベース接続はオートコミットモードに戻る */ ?>
|
|