教义 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的主要内容,如果未能解决你的问题,请参考以下文章

原则 2:QueryBuilder 加入子查询

教义,子查询,无效参数号:绑定变量的数量与标记的数量不匹配

学说:ORM QueryBuilder 或 DBAL QueryBuilder

ORMLite QueryBuilder.orderByRaw(String, SelectArg) 忽略 QueryBuilder.queryRaw() 上的 SelectArg

教义没有在教义上创建一对多关系:模式:更新

创建knex queryBuilder并稍后执行