Недавно обновленный ZF2 до версии 2.1.4 с API базы данных изменился http://framework.zend.com/security/advisory/ZF2013-03
Теперь код, который я использовал для подзапроса, был исключением:
$sub = new Select('md_type'); $sub->columns(array(new Expression('COUNT(mt2.parent_id) as total'))) ->where(array( new \Zend\Db\Sql\Predicate\Expression('mt2.parent_id = mt1.id') )) ; $subquery = new \Zend\Db\Sql\Expression("({$sub->getSqlString()})"); $select = new \Zend\Db\Sql\Select('mt1'); $select->columns(array('*', 'cnt' => $subquery));
$ sub-> getSqlString () ——> Примечание. Попытка указать значение в Zend \ Db \ Adapter \ Platform \ Mysql без поддержки расширения / драйвера может привести к уязвимостям системы безопасности в рабочей среде.
- Функция множественного обновления PHP не обновляется и получает первую строку пустым
- Отформатированный старый формат PHP
- Выполнять запросы и обрабатывать ответы для возобновляемой загрузки: Google Drive api
- Функция PHP mail () не отправляет электронную почту
- Zend_Validate :: is () Static Check, получить сообщение о проверке
- Как передать переменные как stdin в командной строке из PHP
Я не могу найти альтернативный способ использования подзапросов. Скажите, пожалуйста, как быть, как использовать подзапросы сейчас. Благодаря!
Это ошибка: https://github.com/zendframework/zf2/pull/4068
В ближайшем будущем, я думаю, это исправлено.
Пожалуйста, попробуйте это.
$sql = new Sql($this->_adapter); $mainSelect = $sql->select()->from('mt1'); $subQry = $sql->select() ->from('md_type') ->columns(array('orderCount' => new \Zend\Db\Sql\Expression('COUNT(md_type.parent_id)'))) ->where('mt2.parent_id = mt1.id'); $mainSelect->columns( array( 'id', 'total' => new \Zend\Db\Sql\Expression('?', array($subQry)), ) ); $statement = $sql->prepareStatementForSqlObject($mainSelect); $comments = $statement->execute(); $resultSet = new ResultSet(); $resultSet->initialize($comments); return $resultSet->toArray();
Ссылка: ZF2 – подзапросы
Я столкнулся с этой же проблемой, пытаясь запустить подзапросы с существующим. Я написал blogpost с примерами кода, которые расскажут вам, как настроить его. http://aronkerr.blogspot.com/2013/08/zf2-sql-exists-sub-query-using-zf2.html?m=1