2010-12-01 6 views
0

以下のクエリで式が使用されない理由を教えてください。クエリでデータベース式が使用されていません

accountresetを選択します。* accountreset WHERE(reset_id = '34')から、LIMIT 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; 

} 

答えて

1

あなたZend_Db_Exprは、ここでは代わりにselect()

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

from()方法に問題が行くべき私はfrom句に必要なすべてのフィールドを追加する必要があります。 elseは1つのフィールドしか返さないためです。 – sanders

+1

@sandersあなたはフィールドの配列()に '*'を追加できます。 –

関連する問題