Выберите строку с активной записью CodeIgniter - PullRequest
2 голосов
/ 16 июня 2011

Я хочу создать запрос наподобие

SELECT username from users
 WHERE login_attempts > 3 AND last_attempt_time < 24 (hours).

У меня есть 2 вопроса для построения вышеуказанного запроса.

  1. Я храню дату в last_attempt_time вФормат DATETIME (2011-06-16 10:29:23) Можно ли напрямую выбрать строку с разницей во времени менее чем через 24 часа?(ИЛИ мне нужно выбрать строку, а затем проверить, например, с помощью PHP разницу во времени?)

  2. Как я могу написать этот запрос, используя CodeIgniter Active Record?(Нужно ли использовать get_where?) Я не смог найти ни одного связанного примера в их документации.

Спасибо.

Ответы [ 2 ]

9 голосов
/ 16 июня 2011

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

$this->db->select('username');
$this->db->from('users');
$this->db->where('login_attempts >', 3);
$this->db->where('last_attempt_time <', date('Y-m-d H:i:s', strtotime('-24 hours')));

$query = $this->db->get();

Вы можете найти полную документацию здесь: http://codeigniter.com/user_guide/database/active_record.html#select.

2 голосов
/ 16 июня 2011

небольшая оптимизация к ответу Франсуа:

$this->db->select('username');
$this->db->where('login_attempts >', 3);
$this->db->where('last_attempt_time <', date('Y-m-d H:i:s', strtotime('-24 hours')));

$query = $this->db->get('users');

Извините, поставьте как ответ, потому что комментарии не позволяют \ n.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...