コードイグナイターでトランザクションを実装しようとしています。
問題は、私の DML ステートメントが複数のモデル ファイルにあることです。
そして、私の Controller アクションは次のようになります。
//the following is inside a controller
public function myaction()
{
transaction_start();
first_model->setSomeData();
second_model->setSomeData();
third_model->setSomeData();
transaction_complete();
}
私はmysqlデータベースに取り組んでおり、エンジンがトランザクションをサポートしていることを理解しているため、関連するモデルinnodbでテーブルを作成しました。
上記のコード構造は、意図的に2番目のモデルの挿入を失敗させたため、機能していないようです.3つの挿入(3つのモデルのsetsomedataメソッドのそれぞれに1つずつ)がすべて失敗するか、すべて成功すると予想しました しかし、そうではありませんでした
アイデアはありますか?