我正在尝试在代码点火器中实现事务。
问题是我的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中制作了表格,因为我知道引擎支持事务。
上面的代码结构似乎不起作用,因为我故意使第二个模型插入失败。我期望三个插入(三个模型的每个setsomedata方法中的1个)全部失败或全部成功。但事实并非如此
有什么想法吗?
答案 0 :(得分:0)
在codeigniter中调用模型还有一个load->模型函数
<?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();
}
//...
?>