如果向querybuilder设置2个以上的参数,则无法获得结果 - laravel-doctrine / orm + Lumen + oracle

时间:2016-09-08 13:13:31

标签: oracle doctrine-orm lumen

我在Lumen v5.2.7上使用laravel-doctrine / orm v1.2.5尝试执行一个简单的请求时遇到了一个奇怪的问题。使用Oracle数据库。

当我使用包含2个以上参数的查询构建器创建查询时,即使我期待结果集,也没有结果。

$conn = $this->getEntityManager()->getConnection();
$queryBuilder = $conn->createQueryBuilder();
$queryBuilder->select('*')
    ->from('SYNCHS')
    ->where('SYNCHS.CLIENT_ID = :clientId')
    ->andWhere('SYNCHS.TOP_CLIENT_ID = :topClientId')
    ->andWhere('SYNCHS.ID = :synchId');

$queryBuilder->setParameter('clientId', $clientId)
    ->setParameter('topClientId', $topClientId)
    ->setParameter('synchId', $synchId);

echo $queryBuilder->getSQL();
var_dump($queryBuilder->getParameters());

$stmt = $queryBuilder->execute();
var_dump($stmt);

$results = $stmt->fetchAll();
dd($results);

如果我评论where / addwhere子句中的任何一个,我最终得到了预期的结果集,但是如果我在查询中绑定了超过2个参数,它什么都不返回(当然它应该返回一些传递的内容)参数)。

对于每个场景:

  1. 我可以在查询构建器var_dump($queryBuilder->getParameters());
  2. 中看到我的所有参数都已绑定
  3. 在Toad(oracle)中复制echo $queryBuilder->getSQL();的粘贴,使用var_dump($queryBuilder->getParameters());显示的值设置参数,给我1行(预期结果)。所以我确信我的查询是正确的。
  4. 我在谷歌上搜索了几个小时但是没有针对此问题的相关结果。感谢

0 个答案:

没有答案