将日期传递给where子句时出错

时间:2016-02-22 17:23:31

标签: php mysql sql codeigniter codeigniter-3

所以这很奇怪,希望有一个简单的答案。我有一个SQL查询,它使用日期作为where()子句中的第一个参数。但由于某些原因,CodeIginter似乎试图添加额外的转义字符,

这是我的代码

        $this->db->select("*");
        $this->db->from("equip_reserve");
        $this->db->where('equip_list_id = '.$equip_list_id);
        $this->db->where('"'. date("Y-m-d H:i",strtotime($startdate)) .'" between date and returndate');

结果如下:

SELECT * FROM 'equip_reserve' WHERE 'equip_list_id' = 5 AND "2016-02-29 '14:20'" between 'date' and 'returndate'

正如您所看到的,AND子句导致此语句失败后的日期。

有关如何修复它的任何建议吗?

1 个答案:

答案 0 :(得分:0)

我最后通过将SQL直接传递给CodeIgniter而不是使用他们的帮助函数来修复它。万一有人遇到这个问题。

$st = date("Y-m-d H:i",strtotime($startdate));
$sql  =  "SELECT * FROM `equip_reserve` WHERE  ? between `date` AND `returndate` and `equip_list_id` = ?"; 

$query = $this->db->query(
   $sql, 
   array($star,$equip_list_id)

);

返回$ query-> result();

固定!