代码标志器 - 使用活动记录时处理错误

2022-08-30 10:45:23

我正在为我的codeigniter网站整理一些模型,似乎在文档中找不到任何关于如何处理使用Active Record系统时可能发生的错误的信息。

本文档演示了如何执行 CRUD 以及一些相对相关的查询,但没有讨论错误处理的位置。我做了一个快速的谷歌搜索,看起来Active Record类不会引发异常。事实果真如此吗?没有尝试捕捉然后...

那么,如何编码以处理 codeigniter 中的数据库错误呢?(连接失败,重复键,引用完整性损坏,截断,数据类型错误等)


答案 1

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

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

因此,在运行查询后,可以使用如下内容检查错误:

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

答案 2

直接来自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 应用程序配置文件并设置以下内容来记录活动记录错误:

$config['log_threshold'] = 1;

推荐