【发布时间】:2021-01-24 14:01:56
【问题描述】:
我已经阅读了与我遇到的这个错误相关的许多相关答案。但是,没有任何问题(或答案)是关于 CodeIgniter 的 DB 活动查询类在应该返回 FALSE 时(因为发生错误)。它所做的只是将查询错误打印到application/logs 中的错误日志文件并退出。
DB_DEBUG 值为 false。
$db['default']['db_debug'] = FALSE;
这是正在执行的查询:
$this->db
->where('col_1_name', 'value')
->where_in('col_2_name', $array)
->delete('table_name');
发生错误是因为 $array 是一个空数组,但这不是问题 - 问题在于它确实 不返回 false 并且只是 将查询错误打印到错误日志应用程序/日志/ 中的文件。如果发生错误,它应该返回 false ,不是吗?否则怎么会有人发现数据库错误?
在将查询的错误写入日志文件后,它就退出进程。我已经通过在上述方法前后添加log_messages() 验证了这一点。
注意:我尝试过使用 DB_DEBUG = TRUE 和 FALSE,两种情况下都会发生同样的情况。
注意:CodeIgniter 3 的文档说 delete() 方法(以及许多其他 DB 方法)在失败时返回 FALSE。 https://www.codeigniter.com/userguide3/database/query_builder.html#CI_DB_query_builder::delete
【问题讨论】:
标签: php codeigniter error-handling codeigniter-3 codeigniter-database