Я использую doctrine2 с Symfony2, и я пытаюсь выполнить простой запрос на выборку:Doctrine2 [Синтаксис Error] Ошибка: Ожидаемая Буквальное, получил '-'
Я хочу работать:
SELECT * FROM table WHERE status in (1, -1)
Этот PHP код:
$queryBuilder = $this->_em->createQueryBuilder();
$queryBuilder
->select('n')
->from('MyBundle:Table', 'n')
->where('n.status 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;
Если я использую только положительные числа в пределах in
аргумента, он будет работать. Исключение происходит только с отрицательными числами.
В чем причина этого исключения?
прочерки не допускаются, поскольку они могут быть частью нападения инъекции SQL. Либо избавиться от тире, либо вывести отрицательное число в параметр. –