0 php postgresql doctrine symfony doctrine-orm
我正在尝试创建一个Doctrine DBAL querybuilder对象并在其中设置一个参数.(使用postgres db,dbal 2.3.4,学说
$connection = $this->_em->getConnection();
$qb = $connection->createQueryBuilder();
$qb->select('tbl_user_contract.pkid AS pkid');
$qb->from('tbl_user_contract', 'tbl_user_contract');
$qb->join('tbl_user_contract', 'tbl_user', 'tbl_user', 'tbl_user_contract.fk_user = tbl_user.pkid');
$qb->where('tbl_user.pkid = :userid');
$qb->setParameter(':userid', 10);
Run Code Online (Sandbox Code Playgroud)
当我尝试获取此querybuilder对象的结果时,我收到以下错误:
SQLSTATE[08P01]: <<Unknown error>>: 7 ERROR: bind message supplies 0 parameters,
but prepared statement "pdo_stmt_00000002" requires 1
Run Code Online (Sandbox Code Playgroud)
当我检查postgres日志时,我看到传递的查询,我注意到它需要一个参数,但我不会传入参数.
我尝试在where表达式本身设置id(不使用预处理语句),这是有效的.但我真的想让这个准备好的陈述.
谁知道如何解决这个问题?
提前致谢
我想你只需要从setparameter
命令中删除冒号
$qb->setParameter('userid', 10);
Run Code Online (Sandbox Code Playgroud)
至少它在Doctrine的帮助下工作http://docs.doctrine-project.org/en/latest/reference/query-builder.html