Zend DB возвращает значение NULL - PullRequest
0 голосов
/ 31 марта 2010

У меня есть следующий запрос, который идет от 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 голосов
/ 31 марта 2010

После тщательного поиска решения я нашел, где проблема.

Я изменил

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

до

$value = $this->fetchRow($select); 
$data[] = $value->total;
0 голосов
/ 31 марта 2010

Единственной проблемой, которая может быть проблемой, является оператор 'AS' в этом строковом литерале.

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

Попробуйте изменить это на:

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

Я полагаю, что именно так Zend_Db_Select обрабатывает AS.

...