【问题标题】:My Sql DATE_SUB() and codeigniter Active records issue?Mysql DATE_SUB() 和 codeigniter 活动记录问题?
【发布时间】:2012-04-27 12:48:03
【问题描述】:

我正在使用 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)'

我还尝试通过在get_where 中添加FALSE 作为第三个参数,但仍然无效

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

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

-谢谢

【问题讨论】:

    标签: php mysql codeigniter datetime


    【解决方案1】:

    尝试做这样的事情:

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

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

    【讨论】:

      猜你喜欢
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 2012-01-23
      相关资源
      最近更新 更多