使用CodeIgniter Active Record选择Row

时间:2011-06-16 07:36:31

标签: php mysql codeigniter

我想构建一个像

这样的查询
SELECT username from users
 WHERE login_attempts > 3 AND last_attempt_time < 24 (hours).

我有2个问题要构建上述查询。

  1. 我将日期存储在DATETIME格式的last_attempt_time中(2011-06-16 10:29:23) 我可以直接选择从现在开始不到24小时的时差吗? (或者我必须选择一行,然后检查PHP的时差吗?)

  2. 如何使用CodeIgniter Active Record编写此查询? (我需要使用get_where吗?)我在他们的文档中找不到任何相关的例子。

  3. 感谢。

2 个答案:

答案 0 :(得分:9)

试试这个:

$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

答案 1 :(得分:2)

对弗朗索瓦答案的一个小优化:

$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。