トランザクションとは
例えばSQLが複数回発行される場面で、それらが全て成功したか、全て失敗したかのどちらかを保証してくれるシステム。
使ってみる
トランザクションを実行するためにはテーブルの種類がトランザクションをサポートしている必要があるので注意。
まずはモデル内でデータソースオブジェクトを取得する。
1 |
$dataSource = $this->getDataSource(); |
後はこんな感じで使う。
1 2 3 4 5 6 7 8 9 10 11 |
// トランザクションスタート $dataSource->begin(); // 複数のクエリを実行 if (/*すべて成功した場合*/) { $dataSource->commit(); } else { // 一つでもこけていたらロールバックを行う $dataSource->rollback(); } |
トランザクションをネスト化さたりも出来るみたいなので詳しくは公式を参照されたし。