2

コードイグナイターでトランザクションを実装しようとしています。

問題は、私の 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つずつ)がすべて失敗するか、すべて成功すると予想しました しかし、そうではありませんでした

アイデアはありますか?

4

1 に答える 1

0

codeigniter でモデルを呼び出すには、 load->model 関数があります

<?php
controller extends CI_Controller{
    public function __construct(){
        parent::__construct();
        $this->load->model('FirstModel');
        $this->load->model('SecondModel');
    }
?>

そしてそれを何らかのアクションで使用する

<?php
//...
    public function index(){
        $this->FirstModel->getData();
        $this->SecondModel->getData();
    }
//...
?>
于 2012-09-11T22:53:17.897 に答える