Codeigniter 2.1.4 を使用して、トランザクションを実装しようとしています。トランザクションのポイントを見逃しているかもしれませんが、私がやろうとしているのは、サーバーにファイルをアップロードし、そのファイルのデータベース エントリを作成することです。行の挿入またはファイルのアップロードのいずれかが失敗した場合、どちらも実行したくありません。
これが私のコントローラーの要点です
最初にトランザクションを開く
$this->db->trans_begin();
モデル付きのエントリを追加
$fileId = $this->file_model->addFile('someinfo');
ファイルのアップロードを実行する
$upload = $this->upload->do_upload('file');
両方が合格したことを確認する
//commit
if($fileId AND $upload){
$this->db->trans_commit();
}
//rollback
else{
$this->db->trans_rollback();
}
トランザクションは機能せず、アップロードが失敗したかどうかに関係なく、毎回データベース エントリが追加されます。
以前の読書から、トランザクションがモデルに属しているように見えますが、ファイルもアップロードしているので、それはうまくいきません。
これを実装する方法についての考えは?