【发布时间】:2014-03-29 23:00:52
【问题描述】:
我有一个 MySQL 查询,它在 PhpMyAdmin 中完美运行,但在 Zend Framework 1.12 及其fetchAll() 方法中使用时会抛出一个SQLSTATE[HY000]: General error。这里是:
SET @csum := 0;
SELECT s1.Date, (@csum := @csum + s1.total) as cumulative_sum
FROM (
SELECT c.datefield AS Date, IFNULL(SUM(subscription_total),0) AS total
FROM subscription s
RIGHT JOIN calendar c
ON c.datefield = DATE(subscription_date)
WHERE (c.datefield BETWEEN
(SELECT MIN(DATE(subscription_date)) FROM subscription)
AND
NOW()
)
GROUP BY DATE
) AS s1
如果我删除 SET 语句,该语句不会返回任何错误,但我需要设置一个 MySQL 变量,否则 cumulative_sum 将只是 NULL 值。下面是方法的代码:
public function findCumulativeCashflow($statut)
{
$db = $this->_getDbTable();
$dbAdapter = new Zend_Db_Adapter_Pdo_Mysql($db->getAdapter()->getConfig());
$sql = '<SQL statement above>';
$statement = $dbAdapter->query($sql);
$rows = $statement->fetchAll();
return $rows;
}
错误指向$rows = $statement->fetchAll();这一行,有没有其他的ZF方法可以和SET @var := value一起使用?
任何想法将不胜感激。 谢谢!
【问题讨论】:
标签: mysql zend-framework fetchall