Zend DB返回NULL值

时间:2010-03-31 13:14:00

标签: zend-framework zend-db zend-db-table

我有以下从Zend_DB_Table_Abstract扩展的查询

$select = $this->select()
            ->from('expense_details',
             array('SUM(expense_details_amount) AS total'))
        ->where('YEAR(expense_details_date) = ?', '2010')
            ->where('MONTH(expense_details_date) = ?', '01')
            ->where('expense_details_linkemail = ?', 'xxxx@gmail.com');

然而,尽管其“等效”返回了所需的值

,但它返回NULL值
SELECT SUM(expense_details_amount) AS total FROM expense_details
WHERE 
YEAR(expense_details_date) = '2010'                     
AND MONTH(expense_details_date) = '01'
AND expense_details_linkemail = 'xxxx@gmail.com'

我的Zend_DB_Table构造是否正确?

2 个答案:

答案 0 :(得分:0)

可能存在问题的一个问题是此字符串文字中的“AS”语句。

array('SUM(expense_details_amount) AS total'))

尝试将其更改为:

array('total' => 'SUM(expense_details_amount)'))

我相信这是Zend_Db_Select处理AS的方式。

答案 1 :(得分:0)

在努力寻找解决方案后,我发现了问题所在。

我改变了

$value = $this->fetchAll($select); 
$data[] = $value->total; 

$value = $this->fetchRow($select); 
$data[] = $value->total;