Codeigniter – 使用活动logging时处理错误

我正在为我的codeigniter站点放几个模型,似乎无法find关于如何处理使用Active Record系统时可能发生的错误的文档中的任何单词。

该文档演示了如何执行CRUD以及一些相对涉及的查询,但没有讨论error handling的沿线。 我做了一个快速的谷歌search,它会出现,活动logging类不会抛出exception。 这是这种情况吗? 没有尝试赶上,然后…

那么,如何编码来处理codeigniter中的数据库错误? (连接失败,密钥重复,参照完整性受损,截断,错误的数据types等)

无论您是否使用活动logging类,都可以使用$this->db->_error_message()$this->db->_error_number()来访问数据库错误。

如果你使用的是mysql数据库,这些函数分别等价于mysql_error()mysql_errno() 。 您可以通过查看所用数据库的数据库驱动程序的源代码来查看这些function。 它们位于系统/数据库/驱动程序中。

所以,在你运行一个查询之后,你可以使用如下的东西来检查错误:

 if ($this->db->_error_message()) \\handle error 

直接从CodeIgniter支持论坛:

 $res = $this->db->query($str); if (!$res) { // if query returns null $msg = $this->db->_error_message(); $num = $this->db->_error_number(); $data['msg'] = "Error(".$num.") ".$msg; $this->load->view('customers_edit_view',$data); } 

请注意,您也可以通过进入CI应用程序configuration文件并设置以下内容来logging活动logging错误:

 $config['log_threshold'] = 1;