Codeigniter 3 交易

Codeigniter 3 Transaction

在我的代码中,即使出现数据库错误,事务也不会滚动....这是代码...

即使插入试用或注册失败,登录用户也会插入数据...

$this->db->trans_start();
            $logindata = $this->_get_login_data();
            $logindata['is_deleted'] = 0;
            $this->db->insert('user_login',$logindata); 
            //insert login data end


            //insert register data begin
            $registerdata = $this->_get_register_data();
            $registerdata['is_active'] = 1;
            $registerdata['user_login_id'] = $this->db->insert_id();
            $registerdata['subscription_id'] = null;
            $registerdata['login_other_accounts_id'] = null;
            $registerdata['is_first_time_login'] = 1;
            $registerdata['default_language_id'] = 1;
            $registerdata['created_on'] = date('Y-m-d H:i:s');
            $registerdata['is_deleted'] = 0;

            //insert trial period begin
            $trialdata['trial_period_day'] = 10;
            $trialdata['is_publish'] = 0;
            $trialdata['is_deleted'] = null;
            $this->trial_period_model->insert('trial_period',$trialdata);
            //insert trial period end

            if($registerdata['is_company']==null)
                $registerdata['is_company'] = 0;
            $registerdata['trial_period_id'] = $this->user_model->get_last_inserted_id();
            $this->upload_image();
            $imagename = $this->upload->data();
            $registerdata['photo_logo'] = $imagename['file_name'];
            $this->user_model->insert('general_reg_info',$registerdata);
            if ($this->db->trans_status() === FALSE)
            {
                    $this->db->trans_rollback();
                    echo "failed";
            }
            else
            {
                    $this->db->trans_commit();
                    echo "success";
            }
            //insert register data end

您的数据库类型可能是 'MyISAM' 将数据库类型更改为 'InnoDB'