无法在codeIgniter中捕获异常

时间:2014-03-24 19:33:21

标签: php codeigniter try-catch duplicate-data

对不起我的英语,但我需要帮助 当我试图捕捉插入查询时,我遇到了问题

我有一个包含3个主键的表Employe(Matricule,CIN,名称)

我希望在添加具有重复值的新员工时抓住异常

我的模特

  function insert_Employe($donnees){
   try{
    $this->db->insert('Employe',$donnees);
    return 'employe enregistré avec succes';
   }catch(Exception $e)
   {
       return $e->getMessage();
   }
}

我的控制器

  function nouveau(){
    if(!$this->offres->_isLogged() || !$this->input->post('Ajax')==1){
        redirect(base_url().'users');
    }
    $values = $this->_get_values();
    try{
    $message = $this->employe->insert_Employe($values);
    echo $message;
    }catch(Exception $e){
        echo $e->getMessage();
    }
}

我无法捕捉到异常

1 个答案:

答案 0 :(得分:2)

这永远不会抛出异常:

$this->db->insert('Employe',$donnees);

所以你永远不会发现这样的例外。如果insert()方法失败,如果在database.config上将$db['default']['db_debug']设置为TRUE,则会生成显示自定义错误,否则返回FALSE。

最好的办法是在执行数据库操作时检查错误:

$error = $this->db->_error_message()
if(!empty($error)) {
  throw new Exception('Your message');
}