对不起我的英语,但我需要帮助 当我试图捕捉插入查询时,我遇到了问题
我有一个包含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();
}
}
我无法捕捉到异常
答案 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');
}