2009-10-29 53 views
1

我有一個SQLite數據庫,最終將是一個MySQL數據庫,我使用的是Zend Framework。我試圖獲取'date_accepted'列爲空/ null /沒有值的表中的所有行。這是我到目前爲止:如何使用Zend_Db選擇列值爲空/空的行?

public function fetchAllPending() 
{ 
    $select = $this->getDbTable()->select(); 
    $select->where('date_accepted = ?', 'null'); 
    return $this->fetchAll($select); 
} 

我在做什麼錯?你會如何用普通的SQL編寫這個和/或使用Zend_Db_Select

回答

1

我看到兩個可能的問題。什麼是函數getDbTable?如果您的類繼承自Zend_Db_Table,那麼該函數不應該是必需的。其次,也許你應該嘗試IS NULL而不是= null,並在查詢中引用null。

public function fetchAllPending() 
{ 
     $select = $this->select()->where('date_accepted IS NULL'); 
     return $this->fetchAll($select); 
} 
+0

這個函數在我的數據映射器對象中。 (不知道它是否是最好的地方,但它的工作原理)。但IS NULL爲我工作,所以謝謝! – Andrew 2009-10-30 00:52:47

+0

在使用Zend 2.4.7的TableGateway時,我發現了以下有用的http://stackoverflow.com/a/32238396/3112527。 – m1st0 2015-08-26 23:40:07