我想做的是这样的事情:
function registerUser($username, $password){
$this->db->insert('tblUsers', array('username'=>$username, 'password'=>md5($password)));
if($this->db->_error_number()==1062){
return "DUPLICATE";
}
return true;
}
但是,如果有重复的密钥,那么它不会让我到达_error_number()
位。它显示如下错误:
如何阻止codeigniter出错并将错误号传递给我以便妥善处理?
由于
答案 0 :(得分:12)
您可以使用以下方法在Codeigniter中访问MySQL错误消息:
$this->db->_error_message();
显然,数据库配置文件中需要将DB_DEBUG设置为false:
确保数据库配置文件中的DB_DEBUG设置为FALSE,或 发生mysql错误时执行将暂停(它不会被抛出, 它只是退出PHP解释器)
答案 1 :(得分:8)
建议:
$orig_db_debug = $this->db->db_debug;
$this->db->db_debug = FALSE;
RUN QUERY HERE
$this->db->db_debug = $orig_db_debug;