PHP マニュアル
前のページ |  | 次のページ

# PDO::rollBack

(no version information, might be only in CVS)

PDO::rollBack -- トランザクションをロールバックする

## 説明

bool PDO::rollBack ( void )

PDO::beginTransaction() によって開始された 現在のトランザクションをロールバックします 有効なトランザクションがない場合にこのメソッドをコールすると エラーになります。

データベースがオートコミットモードに設定されている場合、 この関数はトランザクションをロールバックした後に オートコミットモードを元に戻します。

MySQL を含むいくつかのデータベースでは、DROP TABLE や CREATE TABLE のようなデータベース定義言語 (DDL) ステートメントがトランザクション中に 発行される場合、暗黙的なコミットが自動的に発行されます。 この暗黙的なコミットにより、そのトランザクション境界で 他のあらゆる変更をロールバックすることができなくなるでしょう。

## 例

例 1. トランザクションをロールバックする

以下の例は、トランザクションを開始し、 変更をロールバックする前にデータベースを修正する 2 つのステートメントを発行します。 しかしながら MySQL では、DROP TABLE ステートメントは 自動的にトランザクションをコミットするので、 トランザクション中のどの変更もロールバックされません。

`<?php /* トランザクションを開始する。オートコミットがオフになる */ $dbh->beginTransaction(); /* データベーススキーマとデータを変更する */ $sth = $dbh->exec("DROP TABLE fruit"); $sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'"); /* ミスに気づき、変更をロールバックする */ $dbh->rollBack(); /* データベース接続はオートコミットモードに戻る */ ?>`

## 参考

PDO::beginTransaction()
PDO::commit()

前のページ | ホーム | 次のページ
PDO::quote | 上に戻る | PDO::setAttribute