2015-07-09 2 views
1

Я использую активную запись Codeingiter и вам нужно проверить записи, которые менее 15 минут.Активная запись, где запись меньше, чем за 15 минут

Я пробовал следующее, которое, как я думал, будет работать.

$this->EE->db->select('entry_id') 
      ->from('exp_channel_titles') 
      ->where('status', $status) 
      ->where('channel_id', $channel) 
      ->where(FROM_UNIXTIME('entry_date') >= DATE_SUB(CURDATE(), INTERVAL 15 MINUTE)) 
      ->order_by('entry_date', 'desc'); 

Кто-нибудь знает, если это возможно?

Я надеялся, что это будет делать работу, где положение»

FROM_UNIXTIME('entry_date') >= DATE_SUB(CURDATE(), INTERVAL 15 MINUTE) 
+0

Эта функция будет оцениваться в PHP, а не MySQL. – Devon

ответ

2

От https://ellislab.com/codeigniter/user-guide/database/active_record.html:

$ this-> db-> где() принимает необязательный третий параметр Если вам. установите в FALSE, CodeIgniter не будет пытаться защитить ваше поле или таблицы имен с обратными кавычками.

$ this-> db-> где ('MATCH (поле) ПРОТИВ ("значением")', NU LL, FALSE);

Таким образом, вы должны быть в состоянии передать строку как:

->where('FROM_UNIXTIME(`entry_date`) >= DATE_SUB(CURDATE(), INTERVAL 15 MINUTE)', NULL, FALSE) 
+0

Спасибо. Это код. Если мой «entry_date» находится в UNIX так: «1436441790», есть ли причина, почему это не должно работать? – ccdavies

+0

Если смотреть на это, это должно быть \ 'entry_date \', поскольку столбец не должен находиться в кавычках, он должен быть в обратном направлении. – Devon

Смежные вопросы