我在关于CodeIgniter的文档中看到了:
“您可以选择将交易系统置于”测试模式“,即 将导致您的查询回滚 - 即使查询 产生有效的结果。要使用测试模式,只需设置第一个
$this->db->trans_start()
函数中的参数TRUE
“
据我所知,能够使用事务(test_mode)来支持数据库fixture来测试插入,更新,删除。但它仍然会对数据库产生影响。我设置db_debug为TRUE。 对这个问题有什么想法吗?非常感谢。
Example code in my controller:
public function __construct(){
//load database library and model
$this->load->library('database');
$this->load->model('message_mdl');
}
public function do()
{
$data_insert = array('message' => 'hello');
$this->db->trans_start(true);
$this->message_mdl->insert($data_insert);
$this->db->trans_complete();
}
答案 0 :(得分:0)
我试过这个也不适合我。我不知道为什么!我会试着找到原因。用适当的方法回到这里。如果你发现了,请告诉我。
但我尝试了替代方法,它的工作正常。
public function dothis()
{
$data_insert = array('message' => 'hello');
$this->db->trans_begin(); //Manually start transaction.
$this->message_mdl->insert($data_insert);
$this->db->trans_rollback(); //Rollback
}
确保完全不使用 $this->db->trans_off();
。