如何捕获CodeIgniter PHP中的DB错误

时间:2013-07-29 11:56:53

标签: php mysql codeigniter

我是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);

在上面的代码中,我想在发生任何数据库级别违规时捕获数据库错误,即字段名称无效或发生某些唯一约束违规。如果有人帮助我解决这个问题,我将非常感激。谢谢。

3 个答案:

答案 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>';