1

我在有关 CodeIgniter 的文档中看到:

“您可以选择将事务系统置于“测试模式”,这将导致您的查询回滚——即使查询产生有效结果。要使用测试模式,只需将$this->db->trans_start()函数中的第一个参数设置为TRUE


我知道能够使用事务(test_mode)来支持数据库夹具来测试插入、更新、删除。但它仍然影响到数据库。我设置 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();
}
4

1 回答 1

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();

于 2013-05-11T05:26:17.173 回答