スポンサーリンク

CakePHP3のORMで,トランザクションとコミット・ロールバックの書き方のテンプレート

DBへの更新処理をひとまとめにして,
エラー発生時に全体を更新前の状態に戻すために
トランザクションが必要。

PHPコード

<?php

use Cake\Datasource\ConnectionManager;



// トランザクション
$connection = ConnectionManager::get('default');
$connection->begin();
try {

  // ロールバックのテスト
  //throw new \Exception("ロールバックのテスト");

  // 更新処理
  // ~

  // コミット
  $connection->commit();

}
catch(\Exception $e)
{
  debug( "ロールバックします。" );
  $connection->rollback();
  
  // 例外を投げる
  throw $e;
}


?>