我想做的是这样的:
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)