我正在尝试使用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();
知道我哪里出错了?
答案 0 :(得分:0)
CodeIgniter Active Record正在向您的语句添加反引号,这会将您的子句呈现为字符串,而不是可执行函数。您可以将第二个参数设置为false
以停止该操作。此外,对于像这样的函数谓词,您只需传入字符串:
$this->history_model->where("date > DATE_SUB(now(), INTERVAL 2 MONTH)", false)->find_all();