Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2查询不工作,在MySql中工作_Php_Mysql_Symfony - Fatal编程技术网

Php Symfony2查询不工作,在MySql中工作

Php Symfony2查询不工作,在MySql中工作,php,mysql,symfony,Php,Mysql,Symfony,我在MySQL中有一个很好的查询,但在Symfony2(当使用名称空间进行设置时)中它不起作用。谁能告诉我为什么 下面是我得到的错误:[语义错误]第0行,第61列靠近“(”:错误:类“(”未定义) $query = $em->createQuery(" SELECT q1.sumQty, q2.totalRows FROM( SELECT sum(fbaoh.qty) as sumQty FROM WIC\APIBundle\Entity\FBAO

我在MySQL中有一个很好的查询,但在Symfony2(当使用名称空间进行设置时)中它不起作用。谁能告诉我为什么

下面是我得到的错误:[语义错误]第0行,第61列靠近“(”:错误:类“(”未定义)

$query = $em->createQuery("
SELECT  q1.sumQty, q2.totalRows
FROM(
    SELECT      sum(fbaoh.qty) as sumQty
    FROM        WIC\APIBundle\Entity\FBAOrderHistory fbaoh
    WHERE       fbaoh.asin = :asin
    AND         fbaoh.sku = :sku
    AND         fbaoh.webServiceAccountAmazon = :wsaa
    AND         fbaoh.datetimePlaced BETWEEN :startDate AND :endDate)
    q1,
    (
    SELECT      count(fbai.id) as totalRows
    FROM        WIC\APIBundle\Entity\FBAInventory fbai
    LEFT JOIN   WIC\APIBundle\Entity\FBAInventoryReport fbair
    WITH        fbai.fbaInventoryReport = fbair.id
    WHERE       fbai.asin = :asin
    AND         fbai.sku = :sku
    AND         fbai.webServiceAccountAmazon = :wsaa
    AND         fbair.report_datetime BETWEEN :startDate AND :endDate)
    q2
    ");
    $query->setParameters(array(
        'startDate' => $startDate->format('Y-m-d'),
        'endDate' => $endDate->format('Y-m-d'),
        'wsaa' => $webService,
        'sku' => $sku,
        'asin' => $asin,
    ));
    $fbaiDataElements = $query->getArrayResult();

谢谢。

我认为在DQL中不能像在MySQL中一样用逗号连接两个内部select语句。您需要将其更改为
join…使用
您最好使用Doctrine DBAL的连接类来查询数据库。您可以这样做:
$this->getEntityManager()->getConnection()->prepare('YOUR PURE MySQL query'));
。。。