Doctrine queryBuilder setParamater

时间:2014-09-24 17:29:45

标签: doctrine-orm

我在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();

任何提示都会很棒。

1 个答案:

答案 0 :(得分:1)

可以直接执行查询构建器,这将正确附加参数。

示例:

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

$queryBuilder->execute();