2010-12-01 56 views
0

Quelqu'un peut-il me dire pourquoi mon expression n'est pas utilisée dans la requête ci-dessous?Expression de base de données non utilisée dans la requête

SELECT accountreset. * FROM accountreset OU (reset_id = '34') LIMITE 1

public function findByResetId($resetId, $model = null) { 
    $result = null; 
    if (isset($resetId)) { 
     $select = $this->getDao()->select(
      array('expiration' => new Zend_Db_Expr('UNIX_TIMESTAMP(expiration)')) 
     ); 
     $select->where('reset_id = ?', $resetId); 
     $row = $this->getDao()->fetchRow($select); 
     if (null != $row) { 
      if (!($model instanceof Stage5_Model_PasswordResetter)) { 
       $model = new Stage5_Model_PasswordResetter(); 
      } 
          // vul het model object 
      $model->setResetId($row->reset_id); 
      $model->setUserId($row->user_id); 
      $model->setExpiration($row->expiration); 
      $result = $model; 

     } 
    } 
    return $result; 

} 

Répondre

1

Votre Zend_Db_Expr devrait aller dans from() méthode au lieu de select()

$select = $this->getDao() 
       ->select() 
       ->from( 
        $this->getDao()->info('name'), 
        array('expiration' => new Zend_Db_Expr('UNIX_TIMESTAMP(expiration)')) 
       ); 
+0

Le problème ici est-ce que maintenant je dois ajouter tous les champs que je veux dans ma clause from. Car sinon cela ne retournera qu'un seul champ. – sanders

+1

@sanders vous pouvez ajouter un '*' à votre tableau() de champs. –