PDO::beginTransaction

PHP ドライバーのダウンロード

自動コミット モードをオフにしてトランザクションを開始します。

構文

  
bool PDO::beginTransaction();  

戻り値

メソッドの呼び出しに成功した場合は true、それ以外の場合は false。

解説

PDO::beginTransaction で開始されたトランザクションは、PDO::commit または PDO::rollback が呼び出されたときに終了します。

PDO::beginTransaction は PDO::ATTR_AUTOCOMMIT の値によって影響を受けず、PDO::ATTR_AUTOCOMMIT の値に影響を与えません。

前の PDO::beginTransaction が PDO::rollback または PDO::commit で終了する前に PDO::beginTransaction を呼び出すことはできません。

このメソッドが失敗した場合、接続は自動コミット モードに戻ります。

PDO のサポートは Microsoft SQL Server 用 Drivers for PHPのバージョン 2.0 で追加されました。

次の例では、「Test」という名前のデータベースと「Table1」という名前のテーブルを使用します。 トランザクションを開始し、コマンドを発行して 2 つの行を追加し、1 つの行を削除します。 コマンドはデーダースに送信され、トランザクションは PDO::commitで明示的に終了します。

<?php  
   $conn = new PDO( "sqlsrv:server=(local); Database = Test", "", "");  
   $conn->beginTransaction();  
   $ret = $conn->exec("insert into Table1(col1, col2) values('a', 'b') ");  
   $ret = $conn->exec("insert into Table1(col1, col2) values('a', 'c') ");  
   $ret = $conn->exec("delete from Table1 where col1 = 'a' and col2 = 'b'");  
   $conn->commit();  
   // $conn->rollback();  
   echo $ret;  
?>  

参照

PDO クラス

PDO