Doctrine2 [语法错误]错误:预期文字,得到' - ' [英] Doctrine2 [Syntax Error] Error: Expected Literal, got '-'
本文介绍了Doctrine2 [语法错误]错误:预期文字,得到' - '的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想运行:
$ b (1,-1)
这个PHP代码:
$ queryBuilder = $ this-> _em-> createQueryBuilder();
$ queryBuilder
- > select('n')
- > from('MyBundle:Table','n')
- > where('n。状态IN(1,-1)');
return $ queryBuilder-> getQuery() - > getResult();
提供以下异常:
[Syntax Error] line 0,col 96:Error:Expected Literal,got' - '
这是实体中的属性定义:
/ **
* @var integer
*
* @ ORM\Column(name =status,type =integer,nullable = true)
* /
private $ status;
如果我只使用中的正数>论证,它会奏效。
什么原因导致这个异常?
解决方案
应该做的诀窍:
$ queryBuilder = $ this-> _em-> createQueryBuilder();
$ queryBuilder
- > select('n')
- > from('MyBundle:Table','n')
- > where('n。状态IN(:status)')
- > setParameter('status',array(1,-1));
I am using doctrine2 with symfony2 and I am trying to perform a simple select query:
I want to run:
SELECT * FROM table WHERE status in (1, -1)
This PHP code:
$queryBuilder = $this->_em->createQueryBuilder();
$queryBuilder
->select('n')
->from('MyBundle:Table', 'n')
->where('n.status IN (1, -1)');
return $queryBuilder->getQuery()->getResult();
Gives the following exception:
[Syntax Error] line 0, col 96: Error: Expected Literal, got '-'
This is the attribute definition within the entity:
/**
* @var integer
*
* @ORM\Column(name="status", type="integer", nullable=true)
*/
private $status;
If I use only positive numbers within the in
argument, it will work. The exception only happens with negative numbers.
What causes this exception?
解决方案
Should do the trick :
$queryBuilder = $this->_em->createQueryBuilder();
$queryBuilder
->select('n')
->from('MyBundle:Table', 'n')
->where('n.status IN (:status)')
->setParameter('status', array(1, -1));
这篇关于Doctrine2 [语法错误]错误:预期文字,得到' - '的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文