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

# 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(); /* データベース接続はオートコミットモードに戻る */ ?>`

## 参考

PDO->beginTransaction()
PDO->commit()

前のページ | ホーム | 次のページ
PDO->quote() | 上に戻る | PDO->setAttribute()