我在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();
任何提示都会很棒。
答案 0 :(得分:1)
可以直接执行查询构建器,这将正确附加参数。
示例:
$queryBuilder = $conn->createQueryBuilder();
$queryBuilder
->select('id', 'value')
->from('test')
->where('id = :id')
->setParameter('id', '1', 'integer');
$queryBuilder->execute();