2017-03-15 91 views
3

我使用Codeigniter3和有問題與查詢笨SQL查詢語法

變量day的默認值是14。我想將下面的sql查詢轉換爲下面的codeigniter模型。

(CONVERT_TZ(CreateTime,'+0:00','+9:00') > DATE_ADD(CONVERT_TZ(NOW(),'+0:00','+9:00') , INTERVAL -".$day." DAY) 

OR CONVERT_TZ(CreateTime,'+0:00','+9:00') > DATE_ADD(CONVERT_TZ(NOW(),'+0:00','+9:00') , INTERVAL -".$day." DAY)) 

這是我寫的模型,它提供了錯誤

$where["CONVERT_TZ(CreateTime,'+0:00','+9:00') > DATE_ADD(CONVERT_TZ(NOW(),'+0:00','+9:00'),"] = "INTERVAL -".$day." DAY"; 

foreach ($where as $key => $value) { 
    $this->db->where($key,$value); 
} 

回答

4

嘗試這樣的..

$where = "(CONVERT_TZ(CreateTime,'+0:00','+9:00') > DATE_ADD(CONVERT_TZ(NOW(),'+0:00','+9:00') , INTERVAL -".$day." DAY) 
      OR CONVERT_TZ(CreateTime,'+0:00','+9:00') > DATE_ADD(CONVERT_TZ(NOW(),'+0:00','+9:00') , INTERVAL -".$day." DAY))"; 

    $this->db->where($where); 

更多看到Codeigniter Query Builder

+0

謝謝您的建議。我將研究Codeginiter查詢生成器。但是,我試過你的代碼,它仍然給我同樣的錯誤。 –

+1

你可以發佈你的錯誤? –

+0

好的。這裏是我的錯誤 你有一個錯誤:在你的SQL語法;檢查與您的MySQL服務器版本相對應的手冊,以找到在''OR CONVERT_TZ(CreateTime,'+ 0:00','+ 9:00')> DATE_ADD(CONVERT_TZ(NO'at line 3)處使用的正確語法 –