使用'DATE_SUB(now(),INTERVAL 2 MONTH)'正确使用Codeigniter

时间:2016-03-10 19:03:36

标签: php mysql codeigniter

我正在尝试使用Codeigniter运行此查询:

SELECT * FROM `bf_bs_history` WHERE date > DATE_SUB(now(), INTERVAL 2 MONTH) 

如果我直接在phpMyAdmin中输入,我会得到我想要的结果。但是,如果从代码运行,它将不会产生任何影响。它根本没有过滤。 PHP行看起来像这样:

$this->history_model->where(array('date > ' => 'DATE_SUB(now(), INTERVAL 2 MONTH)'))->find_all();

知道我哪里出错了?

1 个答案:

答案 0 :(得分:0)

CodeIgniter Active Record正在向您的语句添加反引号,这会将您的子句呈现为字符串,而不是可执行函数。您可以将第二个参数设置为false以停止该操作。此外,对于像这样的函数谓词,您只需传入字符串:

$this->history_model->where("date > DATE_SUB(now(), INTERVAL 2 MONTH)", false)->find_all();