6

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

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

4

3 回答 3

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(); 
}
于 2013-07-29T11:59:44.417 回答
5

您可以在 (config/database.php) 中调试数据库配置中的数据库错误,如下所示:

$db['default']['db_debug'] = TRUE;

更多信息在这里阅读

您还可以使用 Profiler 查看所有查询及其速度。在控制器中,你可以把这个:

$this->output->enable_profiler(TRUE);

在这里阅读更多信息

于 2013-07-29T12:02:01.820 回答
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>';
于 2016-11-17T08:12:49.193 回答