现在两次,我在获取单行结果时错误地使用row()而不是row_array()。通常,它会未经检查而不会发出任何警告消息。 15-30分钟后,我终于注意到了这个问题; h!
关于防止此错误的方法,任何人都没有好的建议。对象格式不会引发PHP警告,但是-当然-当您期望模型方法中的数组时,代码不起作用。
我不小心使用了:
if ($query->num_rows() > 0) {
return $query->row();
}
应改为:
if ($query->num_rows() > 0) {
return $query->row_array();
}
我曾考虑过重写row()数据库方法,并添加log_message()语句,该语句至少(在调试级别上)让我知道我正在使用对象格式,而不是更典型的(对于我来说)代码)格式。
“预防”的唯一方法是再次大量学习文档,因此您可以习惯使用哪个函数。
您可以注意自己,如果要返回multiple记录,请使用row_array()
,对于singular记录,请使用row()
功能。
[请记住,请勿快速键入您的代码,请在继续操作之前逐步校对代码。
覆盖原始函数是一种不好的做法,在检索单个记录时使用row()
函数非常有用,因此请不要这样做。
row()返回对象类型,而row_array()返回array。因此,在使用row_array时,最好在DB中解析行数据的数据。