2011-08-16 77 views
2

我正在使用Codeigniter將數據插入到包含日期字段的Oracle表中。使用codeigniter的Oracle to_date函數

示例代碼如下所示:

$upload_details = array("user_name" = $name, 
    "age" = $age, 
    "date" = 'to_date($date, 'dd/mm/yyyy')' 
); 
$this->Some_model->insert($upload_details); 

現在的問題是,要插入日期字段到Oracle,我需要使用它在數據庫中執行的to_date功能。使用上面的代碼,to_date函數出現在單引號內,並且Oracle拋出一個錯誤。

我認爲如果我在Codeigniter模型中使用$this-db->query,但是我沒有使用它,上面的工作將會起作用。我正在使用$this->db->insert('table_name', $upload_details)

那麼我怎麼能告訴codeigniter的$this->db->insert發送to_do函數照原樣,而不是在單引號之間。

回答

3

嘗試:

$this->db->set('user_name', $name); 
$this->db->set('age', $age); 
$this->db->set('date',"to_date('$date','dd/mm/yyyy')",false); 
$this->db->insert('mytable'); 

編輯:在$日期行情

+0

感謝它似乎達到我想要的。但是,仍然存在錯誤。上面的代碼產生以下SQL: 'insert into table(「date」)值(2011年8月8日,'dd/mm/yyyy')' 我需要16/08/2011之間的引號 – WebNovice

+0

好吧,我已經想出瞭如何把報價。但是,codeigniter仍會拋出一個數據庫錯誤並將SQL查詢吐出。我複製查詢並在PL/SQL開發人員中運行它,並且運行良好。該行被插入。但是,從codeigniter,它不。可能是什麼問題呢?謝謝! – WebNovice

+0

可以把CI給出的錯誤嗎? –