2014-09-24 52 views
2

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

这里是我的代码:

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

这就造成:

SELECT id, value FROM test WHERE id = :id 

然而,当我使用

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

收到此错误的的setParameter不适用: “致命错误:没有捕获的异常'Doctrine \ DBAL \ Driver \ Mysqli \ MysqliException'带消息'你的SQL语法有错误;检查对应于你的MySQL服务器版本使用附近的正确语法手册“:身份证” ......”

我缺少什么

使用该作品,但我更愿意整合参数?直接在QueryBuilder的:

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

任何提示将是巨大的

回答

1

它可以直接执行的QueryBuilder,这将正确地将PARAMATERS

示例:

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

$queryBuilder->execute(); 
+0

非常感谢!有用。 :) – Sunny 2014-09-25 13:28:16

+0

请标记我的答案为接受。谢谢 – tom 2014-09-27 04:59:12

相关问题