处理codeigniter mysql插入中的重复键

Tho*_*son 7 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;

}
Run Code Online (Sandbox Code Playgroud)

但是,如果有一个重复的密钥,那么它不会让我得到这个_error_number()位.它显示如下错误:

在此输入图像描述

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

谢谢

cit*_*nen 12

您可以使用以下命令访问Codeigniter中的MySQL错误消息:

$this->db->_error_message();
Run Code Online (Sandbox Code Playgroud)

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

确保在数据库配置文件中将DB_DEBUG设置为FALSE,否则执行将在发生mysql错误时停止(它不会被抛出,它只是从php解释器退出)

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


小智 8

建议:

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

$this->db->db_debug = FALSE;

RUN QUERY HERE

$this->db->db_debug = $orig_db_debug;
Run Code Online (Sandbox Code Playgroud)

  • 不改变配置的好方法 (2认同)