Pee*_*ush 2 php mysql datetime codeigniter
我正在使用codeigniter活动记录执行一个简单的mysql查询来选择最近一小时的数据.
所以我的查询是:
SELECT * FROM tablename WHERE added_datetime >= DATE_SUB(NOW(),INTERVAL 1 HOUR)
Run Code Online (Sandbox Code Playgroud)
和我的codeigniter代码来形成这个查询是:
$data=array(
'added_datetime >='=>'DATE_SUB(NOW(),INTERVAL 1 HOUR)',
);
$query=$this->db->get_where('tablename',$data);
Run Code Online (Sandbox Code Playgroud)
现在问题是codeigniter在DATE_SUB函数周围添加了一个引号,因此查询在mysql服务器上不起作用.
codeigniter产生:
SELECT * FROM (`tablename`) WHERE `added_datetime` >= 'DATE_SUB(NOW(),INTERVAL 1 HOUR)'
Run Code Online (Sandbox Code Playgroud)
我也尝试添加FALSE第三个参数get_where但stil没有工作
$query=$this->db->get_where('tablename',$data,FALSE);
Run Code Online (Sandbox Code Playgroud)
它也产生了与上面相同的查询.所以请建议我如何解决这个问题.
-谢谢
尝试做这样的事情:
$this->db->where("added_datetime >= DATE_SUB(NOW(),INTERVAL 1 HOUR)", NULL, FALSE);
$query = $this->db->get('tablename');
Run Code Online (Sandbox Code Playgroud)
$this->db->get_where(); 不提供unescaping你的where子句的功能.