我使用codeigniter活动记录来执行一个简单的mysql查询,以便在最后一小时内选择数据。
所以我的查询是:
SELECT * FROM tablename WHERE added_datetime >= DATE_SUB(NOW(),INTERVAL 1 HOUR)
和我用于形成此查询的codeigniter代码是:
$data=array(
'added_datetime >='=>'DATE_SUB(NOW(),INTERVAL 1 HOUR)',
);
$query=$this->db->get_where('tablename',$data);
现在问题是codeigniter在DATE_SUB函数周围添加了一个引号,因此查询在mysql服务器上不起作用。
codeigniter产生:
SELECT * FROM (`tablename`) WHERE `added_datetime` >= 'DATE_SUB(NOW(),INTERVAL 1 HOUR)'
我还尝试在FALSE
中添加get_where
作为第三个参数,但stil无效
$query=$this->db->get_where('tablename',$data,FALSE);
它也产生了与上面相同的查询。 所以请建议我如何解决这个问题。
-Thanks
答案 0 :(得分:7)
尝试做这样的事情:
$this->db->where("added_datetime >= DATE_SUB(NOW(),INTERVAL 1 HOUR)", NULL, FALSE);
$query = $this->db->get('tablename');
$this->db->get_where();
没有提供取消你的where子句的功能。