php
  • mysql
  • sql
  • codeigniter
  • codeigniter-3
  • 2016-02-22 99 views 0 likes 
    0

    所以這很奇怪,希望有一個簡單的答案。我有一個SQL查詢使用日期作爲where()子句中的第一個參數。但由於某些原因CodeIginter似乎試圖在額外轉義字符添加,將日期傳遞到where子句時出錯

    這裏是我的代碼

     $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子句導致此語句失敗。

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

    +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) 
    

    );

    return $ query-> result();

    固定!

    相關問題