2011-08-16 40 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给出的错误吗? –