Я пытаюсь подсчитать количество уведомлений, полученных пользователем в Codeignter. Я сравниваю отметку времени, которая сохраняется в каждой строке пользователей, в которой записывается время последней проверки страницы уведомлений, и время, добавляемое для каждого уведомления. Однако я получаю ошибку базы данных:
A Database Error Occurred
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '10:17:00' at line 5
SELECT * FROM (`notifications`) WHERE `user_id` = '1' AND `instigator_id` != '1' AND added <= 2014-11-04 10:17:00
Имя файла: /Users/true/Documents/Site/models/private/notifications_model.php
Номер строки: 152
Контроллер уведомлений выглядит так
$data["user"] = $CI->Profile_model->get_public_profile_id($logged_user);
$count = $CI->notifications_model->get_notifications_count($data["user"][0]["notes_check"]);
Модель:
public function get_notifications_count($time){$this->db->from($this->notifications_table);
$this->db->where('user_id', $this->session->userdata("id", 0));
$this->db->where('instigator_id !=', $this->session->userdata("id", 0));
$this->db->where('added <= '.$time, '', false);
$query = $this->db->get();
$results = $query->result_array();
return count($results);}
Ваши значения даты / времени являются строками. Так как у вас нет '
-квот кавычки вокруг них, MySQL видит это:
added <= 2014-11-04 10:17:00
^^^^^^^^^^---mathematical subtraction = 1999
^^^^^^^^^--illegal unknown field/table name
Так должно быть
added <= '2014-11-04 10:17:00'
Обратите внимание на цитаты.
Других решений пока нет …