教义 queryBuilder setParamater
Posted
技术标签:
【中文标题】教义 queryBuilder setParamater【英文标题】:Doctrine 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();
任何提示都会很棒。
【问题讨论】:
【参考方案1】:可以直接执行querybuilder,这样可以正确附加参数。
例子:
$queryBuilder = $conn->createQueryBuilder();
$queryBuilder
->select('id', 'value')
->from('test')
->where('id = :id')
->setParameter('id', '1', 'integer');
$queryBuilder->execute();
【讨论】:
以上是关于教义 queryBuilder setParamater的主要内容,如果未能解决你的问题,请参考以下文章
学说:ORM QueryBuilder 或 DBAL QueryBuilder
ORMLite QueryBuilder.orderByRaw(String, SelectArg) 忽略 QueryBuilder.queryRaw() 上的 SelectArg