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 3

3 ответа:

Проблема заключалась в разрешениях на таблицы. Пользователь приложения не был добавлен в новую таблицу.

Если используется result_array(), то сначала будет проверено количество строк в запросе

if($query->num_rows()>0){
   return $query->result_array();  
}else {
   return 0; 
}

Я считаю, что вы вызываете неправильный метод, чтобы получить результат.

Попробуйте это

return $query->result();

Для получения дополнительной информации об активной записи о Codeigniter перейдите сюда