事务无法在codeigniter中回滚

Pra*_*iya 4 php mysql transactions codeigniter codeigniter-3

我正在处理事务,并且在提到的代码中我遇到了一些问题.我没有提交事务,但是它将数据插入到我的数据库中.

$this->db->trans_begin();
$this->db->insert('tblorder',$data);
$orderid=$this->db->insert_id();
foreach ($orderItemList as $orderItemList) {
    $orderitem = array('orderid' =>$orderid ,'productid' =>$orderItemList->productid ,'amount' =>$orderItemList->amount);
    $this->db->insert('tblorderitem',$orderitem);
}
$this->db->trans_complete();

if ($this->db->trans_status() == 1) {
    $this->db->trans_rollback();
    return "true";
} else {
    $this->db->trans_commit();
    return "false";
}
Run Code Online (Sandbox Code Playgroud)

我回滚了事务,并且所有数据都被插入到我的数据库中.一定是什么问题?我无法得到它.

小智 6

不使用 $this->db->trans_complete();

根据文件

$this->db->trans_begin();

$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');

if ($this->db->trans_status() === FALSE)
{
        $this->db->trans_rollback();
}
else
{
        $this->db->trans_commit();
}
Run Code Online (Sandbox Code Playgroud)