簡體   English   中英

將日期傳遞到where子句時出錯

[英]error when passing a date to where clause

因此,這很奇怪,希望有一個簡單的答案。 我有一個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子句導致該語句失敗的日期。

關於如何解決它的任何建議?

我最終通過僅將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();

固定!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM