2

我正在使用 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但仍然没有工作

$query=$this->db->get_where('tablename',$data,FALSE);

它还产生了与上面相同的查询。所以请建议我如何解决这个问题。

-谢谢

4

1 回答 1

9

尝试做这样的事情:

$this->db->where("added_datetime >= DATE_SUB(NOW(),INTERVAL 1 HOUR)", NULL, FALSE);
$query = $this->db->get('tablename');

$this->db->get_where();不提供取消转义 where 子句的功能。

于 2012-04-16T07:12:38.540 回答