你好,我正面临使用CodeIgniter中的查询生成器problemm。问题是它使用单引号包装日期。查询如下所示:摆脱日期中的单引号codeigniter
SELECT *
FROM `enquiries`
WHERE DAY(enquiry_date) = 'DAY(CURDATE())'
AND YEAR(enquiry_date) = 'YEAR(CURDATE())'
AND MONTH(enquiry_date) = 'MONTH(CURDATE())'
当然,由于单引号,它永远不会返回任何结果。有什么办法摆脱他们?或者我必须做一个硬编码查询?
如果我执行从phpmyadmin的SQL控制台相同的查询这样
SELECT * FROM `enquiries` WHERE DAY(enquiry_date) = DAY(CURDATE()) AND MONTH(enquiry_date) = MONTH(CURDATE()) AND YEAR(enquiry_date) = YEAR(CURDATE())
它工作正常。
我的方法:
public function enquiries_get(){
$this->load->model('Model_enquiries');
$enquiries = $this->Model_enquiries->get_many_by(array('DAY(enquiry_date)' => 'DAY(CURDATE())', 'YEAR(enquiry_date)' => 'YEAR(CURDATE())', 'MONTH(enquiry_date)' => 'MONTH(CURDATE())'));
if ($enquiries) {
$this->response(array('status' => 'success', 'status_code' => '200', 'message' => '200 OK', 'response' => $enquiries));
} else {
$this->response(array('status' => 'failure', 'status_code' => '404', 'message' => '404 Not Found', 'response' => 'We couldn\'t find any enquiries for today. Please check again later.'), REST_Controller::HTTP_NOT_FOUND);
}
}
什么想法?
'set()'函数带有第三个参数,可以用来保留这些值,这是调用这样的函数所必需的。 [查询构建器文档](https://www.codeigniter.com/userguide3/database/query_builder.html#inserting-data)解释了这一点。 – tadman