我已经阅读了与我遇到的这个错误相关的许多相关答案。但是,没有任何问题(或答案)是关于 CodeIgniter 的 DB 活动查询类在它应该返回 FALSE 时(因为发生错误)。它所做的只是将查询错误打印到错误日志文件中application/logs
并退出。
DB_DEBUG 值为假。
$db['default']['db_debug'] = FALSE;
这是正在执行的查询:
$this->db
->where('col_1_name', 'value')
->where_in('col_2_name', $array)
->delete('table_name');
发生错误是因为$array
是一个空数组但不是问题 - 问题是它不返回 false并且只是将查询错误打印到 applications/logs/ 中的错误日志文件。如果发生错误,它应该返回 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