Дважды я по ошибке использовал row () вместо row_array () при получении результата из одной строки. Обычно он проходит без каких-либо предупреждений. 15-30 минут спустя я наконец замечаю проблему; дох дох!
Есть ли у кого-нибудь хорошие предложения относительно способов предотвращения этой ошибки. Формат объекта не выдает предупреждение PHP, но, конечно, код не работает, когда вы ожидаете массив от метода модели.
Я случайно использовал:
if ($query->num_rows() > 0) {
return $query->row();
}
Что вместо этого должно быть:
if ($query->num_rows() > 0) {
return $query->row_array();
}
Я думал о переопределении метода базы данных row () и добавлении в оператор log_message (), который, по крайней мере, дал бы мне знать (на уровне отладки), что я использую объектный формат вместо гораздо более типичного (для мой код) формат.