2011-08-16 18 views
2

Codeigniterを使用して、日付フィールドを含むOracle表にデータを挿入しています。Oracle to_date with codeigniter

サンプル・コードは次のようになります。

$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 Modelで$this-db->queryを使用していますが、これを使用していないとうまくいくと思います。私は$this->db->insert('table_name', $upload_details)を使用しています。

コードシニターの$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 ")値(16/08/2011、 'dd/mm/yyyy')' 引用符の間になるように16/08/2011が必要 – WebNovice

+0

さて、私は引用符を入れる方法を考え出しました。しかし、codeigniterは依然としてDatabase Errorをスローし、SQLクエリーを吐き出します。私は、クエリをコピーし、PL/SQLの開発者でそれを実行し、それはうまく動作します。行が挿入されます。しかし、codeigniterからは、そうではありません。何が問題なの?ありがとう! – WebNovice

+0

CIで与えられるエラーを置くことができますか? –