处理codeigniter mysql插入中的重复键

时间:2012-02-14 17:06:22

标签: mysql codeigniter

我想做的是这样的事情:

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()位。它显示如下错误:

enter image description here

如何阻止codeigniter出错并将错误号传递给我以便妥善处理?

由于

2 个答案:

答案 0 :(得分:12)

您可以使用以下方法在Codeigniter中访问MySQL错误消息:

$this->db->_error_message();

显然,数据库配置文件中需要将DB_DEBUG设置为false:

  

确保数据库配置文件中的DB_DEBUG设置为FALSE,或   发生mysql错误时执行将暂停(它不会被抛出,   它只是退出PHP解释器)

链接:http://codeigniter.com/forums/viewthread/79950/#413830

答案 1 :(得分:8)

建议:

$orig_db_debug = $this->db->db_debug;

$this->db->db_debug = FALSE;

RUN QUERY HERE

$this->db->db_debug = $orig_db_debug;