PDO ::のbeginTransaction
PDO ::トランザクションを開始BEGINTRANSACTION(PHP 5> = 5.1.0、PECLのpdo> = 0.1.0)
説明
文法
bool PDO::beginTransaction ( void )
自動コミット・モードをオフにします。 自動コミット・モードは、あなたがPDOを呼び出すまでデータベースに加え、PDOオブジェクトインスタンスの変更によって、同時にオフになっている::(コミット)トランザクションを終了するためにのみ送信されました。
データベースに加えられた変更とデータベース接続をロールバックしますPDO ::ロールバック()を呼び出すと、自動コミット・モードに戻ります。
MySQLの、を含むいくつかのデータベースは、ときに同様の問題がDROP TABLEまたはCREATE TABLE DDL文など、それは自動的に暗黙のトランザクションがコミットされます。
暗黙的または明示的にコミットすることで、このトランザクションの範囲内で他の変更をロールバックできなくなります。
戻り値
TRUE、失敗した場合に正常に戻っはFALSEを返します。例
トランザクションをロールバック
ロールバックする前に、この変更の次の例では、トランザクションを開始し、データベースを修正する2つのステートメントを発行します。
このトランザクション内のすべての変更はロールバックされないように、しかし、MySQLでは、DROP TABLEステートメントは自動的に、トランザクションをコミットします。
<?php /* 开始一个事务,关闭自动提交 */ $dbh->beginTransaction(); /* 更改数据库架构及数据 */ $sth = $dbh->exec("DROP TABLE fruit"); $sth = $dbh->exec("UPDATE dessert SET name = 'hamburger'"); /* 识别出错误并回滚更改 */ $dbh->rollBack(); /* 数据库连接现在返回到自动提交模式 */ ?>