Zend framework2 将sql zend framework 1转换为zend framework 2
我有zf1的SQL语句如下:Zend framework2 将sql zend framework 1转换为zend framework 2,zend-framework2,Zend Framework2,我有zf1的SQL语句如下: $tableName = 'log_ccu_' . $gameId; $sql = 'SELECT MAX(su) AS total '; $sql .= 'FROM '; $sql .= '(SELECT SUM(ccu) AS su '; $sql .= 'FROM ' . $tableName . ' WHERE `time` BETWEEN "' . $startMoment . '" AND "' . $endMoment
$tableName = 'log_ccu_' . $gameId;
$sql = 'SELECT MAX(su) AS total ';
$sql .= 'FROM ';
$sql .= '(SELECT SUM(ccu) AS su ';
$sql .= 'FROM ' . $tableName . ' WHERE `time` BETWEEN "' . $startMoment . '" AND "' . $endMoment . '" ' . $_where . $where;
$sql .= 'GROUP BY time) AS p ';
$stmt = $this->_ccuMobileDb->query($sql);
$row = $stmt->fetch();
现在,我想使用select tablegateway将其转换为zf2。我尝试了此操作,但不起作用:
$tableName = 'log_ccu_' . $gameId;
$apdater = ServiceLocatorFactory::getInstance()->get("Zend\Db\Adapter\Adapter");
$tableGateway = new TableGateway($tableName, $apdater);
$select = $tableGateway->getSql()->select();
$subSql = $tableGateway()->getSQl()->select();
$subSql->columns(['su'=>new \Zend\Db\Sql\Predicate\Expression('SUM(ccu)')])->where([new \Zend\Db\Sql\Predicate\Between('time',$startMoment,$endMoment)]);
$sub = $subSql->getSqlString($adapter->getPlatform());
$select->column(['total'=> new \Zend\Db\Sql\Predicate\Expression($sub)]);
那么问题到底是什么呢?第一个语句有效吗?第二条语句给出了什么错误?此错误:致命错误:未捕获异常“Zend\View\exception\RuntimeException”和消息