如何捕获数据库异常?

时间:2017-08-16 07:51:55

标签: codeigniter codeigniter-3

在控制器内部我想插入数据库:

public function insertAction() {

        try {
            $this->load->model('action');
            $_POST['laDate'] = $this->input->post('ladate_') == '' ? '' : $this->dates->convertDateToFormatBase($this->input->post('ladate_'), '');
            $_POST['dateCreation'] = "now()";
            $action_id = $this->action->ajouter($_POST);
            if (isset($_POST['verificateurs'])) {
                $this->load->model('actionVerificateur');
                $this->actionVerificateur->inserer($action_id, $_POST['verificateurs']);
            }
            $this->load->view('ajax/insertAction', array('action_id' => $action_id));
        }
        catch (Exception $e) {
            $this->load->view('ajax/insertAction', array('action_id' => 0));
        }

    }

数据库表的某些列存在unique约束。因此,当违反此约束时,我想捕获异常。但似乎我的代码没有抓住它!那么如何捕捉异常?

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方法:我测试了$this->db->insert_id()是否为数字!因为在引发异常的情况下,返回的值是一个用<DOCTYPE>开头的html代码。