红瓜 发表于 2018-8-2 18:12:57

CI的事务使用有问题,求助一下

本帖最后由 红瓜 于 2018-8-2 18:18 编辑

以下是控制器中的代码
$this->db->trans_start();
$insert_user = $this->user_model->insert_data([
    'student_id' => $student_id,
    'username' => $username,
    'user_password' => $user_password,
    'user_email' => $user_email,
    'level_id' => 1//后面改,接入website_model
]);
$insert_userFront = $this->user_front_model->insert_data([
    'student_id' => $student_id
]);
$this->db->trans_complete();
if (!$this->db->trans_status()){
    return_msg(false, '数据库出错 注册失败');
}

以下是model中的insert_data方法,使用了构造查询。
public function insert_data($in_data, $set_data = true){

    //添加数据

    if ($set_data){
      $in_data = $this->set_data($in_data);
    }
    $result = $this->db->insert($this->table_name,$in_data);
    return $result;
}

现在我测试时遇到的问题是,第二个model插入数据失败后(由于主键重复而失败),事务不会自行回滚,第一个model仍旧更新了数据。
然后,下边的判断trans_status的句子也没有执行。
想知道问题在哪里呢?
页: [1]
查看完整版本: CI的事务使用有问题,求助一下