В моей базе данных MySQL есть таблица с именем Documents со столбцом с именем online_since.
Функция _getMaxOnlineSince() должна получить максимальное значение online_since и вернуть его в виде строки.
В application/models/browse_model.php:
Код: Выделить всё
private function _getMaxOnlineSince() {
$this->db->select_max('online_since');
$oQuery = $this->db->get('documents');
return $oQuery->num_rows() > 0 ? $oQuery->row()->online_since : false;
}
Неустранимая ошибка: необнаруженная ошибка: вызов функции-члена num_rows() для
логического значения
из-за $oQuery имеет значение false: var_dump($oQuery) возвращает bool(false)
var_dump($this->db->select_max('online_since')) возвращает object(CI_DB_mysqli_driver)#14 (73) {...
Приложение Codeigniter 2 работало на старом сервере с PHP 5.3, но после обновления до PHP 7 происходит сбой на этом этапе.
Почему $this->db->get('documents') возвращает false и как это исправить?
Мне удалось заставить эту функцию работать с SQL-запросами:
Код: Выделить всё
private function _getMaxOnlineSince() {
$oQuery = "select max(online_since) from documents";
$sMaxOnlineSinceDate = $this->db->query($oQuery);
return $sMaxOnlineSinceDate->num_rows() > 0 ? $sMaxOnlineSinceDate->row()->online_since : false;
}
$this->db->get('documents')
Полагаю, в моем случае CodeIgniter по какой-то причине не может оценить этот оператор. Я буду отлаживать дальше.
Подробнее здесь: https://stackoverflow.com/questions/445 ... turn-false
Мобильная версия