CodeIgniter db - > запрос, возвращающий false при выборе
Это конкретное приложение используется уже более года и использует несколько десятков моделей, и у меня возникли проблемы только с этой конкретной новой функцией.
public function get_slides($promo = NULL) {
$sql = "SELECT description as alt, image, link
FROM " . CONFIG_DATABASE . ".slides
WHERE active = '1' AND acct_no = '" . API_ACCT . "' ORDER BY priority ASC;";
$query = $this->db->query($sql);
var_dump($sql);
var_dump($query);
return $query->result_array();
}
Результаты этого таковы:
string 'SELECT description as alt, image, link
FROM web_config_development.slides
WHERE active = '1' AND acct_no = '10001' ORDER BY priority ASC;' (length=143)
boolean false
Затем:
Фатальная ошибка: вызов функции-члена result_array () на не-объекте
Запрос прекрасно работает в MySQL Workbench. В поисках этой проблемы я наткнулся на документы, ссылающиеся на истинные / ложные ответы на INSERT и Удалить, но не на SELECT.
Это не имеет никакого смысла ... если у вас есть какие-либо идеи, мы будем очень признательны, если вы поделитесь ими.
3 ответа:
Проблема заключалась в разрешениях на таблицы. Пользователь приложения не был добавлен в новую таблицу.
Если используется result_array(), то сначала будет проверено количество строк в запросе
if($query->num_rows()>0){ return $query->result_array(); }else { return 0; }
Я считаю, что вы вызываете неправильный метод, чтобы получить результат.
Попробуйте это
return $query->result();
Для получения дополнительной информации об активной записи о Codeigniter перейдите сюда