最近、データベース API を使用してバージョン 2.1.4 に更新された ZF2 は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 の値を拡張機能やドライバーのサポートなしで引用しようとすると、本番環境でセキュリティの脆弱性が発生する可能性があります。
サブクエリを使用する別の方法が見つかりません。なり方、サブクエリの使い方を教えてください。ありがとう!
バグです: https://github.com/zendframework/zf2/pull/4068
近い将来、それは修正されたと思います。