我在codeigniter中发现了一些令人不安的事情,为什么当我使用update_batch
并且要更新的数据与数据库中的数据完全相同时,它总是返回false。
我似乎无法在CI文档中找到任何合理且良好的解释和说明。即使没有数据更改,我也需要它返回true,因为它会影响我的代码中的大部分,并且如果无法更新db(即将已存在的数据插入到唯一列中),则仅返回false,然后它应该返回false。
还有一件事,如何在CI中显示db查询错误消息?已经读过它应该是$this->db->_error_message()
,但它会一直返回Call to undefined method
。我在这里缺少什么?
答案 0 :(得分:2)
您的问题包含相互矛盾的信息:
update_batch()
如果已成功执行至少一个false
查询,则从不返回布尔值UPDATE
,无论是否更新了任何记录。
void
返回值(如果您想使用它,则会隐式转换为null
。)int(0)
与bool(false)
不同)false
。_error_message()
曾经存在于CI2上,但其下划线前缀表示它是一种内部方法,您不应该使用它。 CI3有一个error()
方法替换它,如果首先出现错误,它会返回数组中的代码和消息。