【问题标题】:Doctrine queryBuilder setParamater教义 queryBuilder setParamater
【发布时间】:2014-09-24 17:29:44
【问题描述】:

我在使用 Doctrine queryBuilder 中的参数时遇到问题。

这是我的代码:

$queryBuilder
    ->select('id', 'value')
    ->from('test')
    ->where('id = :id')
    ->setParameter('id', '1', 'integer')
;

这会创建:

SELECT id, value FROM test WHERE id = :id

但是当我使用 setParameter 时没有应用

$stmt = $conn->query($queryBuilder);

得到这个错误: “致命错误:未捕获的异常 'Doctrine\DBAL\Driver\Mysqli\MysqliException' 并带有消息 '您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册以获取在 ':id' 附近使用的正确语法……”

我错过了什么?

使用这个可行,但我更愿意直接在 queryBuilder 中集成参数:

$stmt = $conn->prepare($queryBuilder);
$stmt->bindValue("id", "1", "integer");
$stmt->execute();

任何提示都会很棒。

【问题讨论】:

    标签: doctrine-orm


    【解决方案1】:

    可以直接执行querybuilder,这样可以正确附加参数。

    例子:

    $queryBuilder = $conn->createQueryBuilder();
    $queryBuilder
        ->select('id', 'value')
        ->from('test')
        ->where('id = :id')
        ->setParameter('id', '1', 'integer');
    
    $queryBuilder->execute();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多