我是CodeIgniter,PHP和MySQL的新手。我想处理数据库生成的错误。从Stackoverflow中的一篇文章中,我知道通过以下语句可以捕获错误。
$this->db->_error_message();
但我无法弄清楚使用它的确切语法。假设我想通过以下语句更新名为“table_name”的表的记录:
$array['rank']="8";
$array['class']="XII";
$this->db->where('roll_no',$roll_no);
$this->db->update("table_name", $array);
在上面的代码中,我想在发生任何数据库级别违规时捕获数据库错误,即字段名称无效或发生某些唯一约束违规。如果有人帮助我解决这个问题,我将非常感激。谢谢。
答案 0 :(得分:6)
codeIgniter具有它的功能
$this->db->_error_message();
$this->db->_error_number();
if(!$this->db->update("table_name", $array))
{
$this->db->_error_message();
$this->db->_error_number();
}
答案 1 :(得分:5)
您可以在(config / database.php)中调试数据库配置中的数据库错误,如下所示:
$db['default']['db_debug'] = TRUE;
更多信息阅读here
您还可以使用Profiler查看所有查询及其速度。在控制器中你可以把它放在:
$this->output->enable_profiler(TRUE);
更多信息请参阅here
答案 2 :(得分:2)
在Codeigniter版本2上,
$this->db->_error_message();
$this->db->_error_number();
在Codeigniter版本3上,
$db_error = $this->db->error();
echo '<pre>';print_r($db_error);echo '</pre>';