CodeIgniter:防止row_array()与row()错字?

问题描述 投票:1回答:2

现在两次,我在获取单行结果时错误地使用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()语句,该语句至少(在调试级别上)让我知道我正在使用对象格式,而不是更典型的(对于我来说)代码)格式。

php codeigniter codeigniter-2
2个回答
0
投票

“预防”的唯一方法是再次大量学习文档,因此您可以习惯使用哪个函数。

您可以注意自己,如果要返回multiple记录,请使用row_array(),对于singular记录,请使用row()功能。

[请记住,请勿快速键入您的代码,请在继续操作之前逐步校对代码。

覆盖原始函数是一种不好的做法,在检索单个记录时使用row()函数非常有用,因此请不要这样做。


0
投票

row()返回对象类型,而row_array()返回array。因此,在使用row_array时,最好在DB中解析行数据的数据。

© www.soinside.com 2019 - 2024. All rights reserved.