2010-09-13 4 views
1

J'essaye d'ajouter une entrée à une table Oracle qui a un champ de date. Jusqu'à présent, j'ai seulement été capable de le faire comme ceci:Insérer des dates dans la base de données Oracle via Zend_Db

$createdDate = $entry->createdDate->toString('yyyy-MM-dd'); 
$data = array(
    'ID' => $entry->id, 
    'STATE' => $entry->state,   
    'CREATED_DATE' => new Zend_Db_Expr("to_date('$createdDate', 'YYYY-MM-DD')") 
); 
$this->_getGateway()->insert($data); 

Y a-t-il un meilleur moyen? Cette solution me sent sale.

Répondre

3

Vous devriez être en mesure de le faire à la place:

$createdDate = $entry->createdDate->toString('yyyy-MM-dd'); 
$data = array(
    'ID' => $entry->id, 
    'STATE' => $entry->state,   
    'CREATED_DATE' => new Zend_Db_Expr("date '$createdDate'") 
); 
$this->_getGateway()->insert($data); 

La seule différence est l'utilisation d'une date ANSI littérale dans la ligne 5.

Questions connexes