Sto usando Doctrine2 con Symfony2 e sto cercando di eseguire una semplice query di selezione:Doctrine2 [Errore di sintassi] Errore: Previsto letterale, ha '-'
voglio correre:
SELECT * FROM table WHERE status in (1, -1)
Questo codice PHP:
$queryBuilder = $this->_em->createQueryBuilder();
$queryBuilder
->select('n')
->from('MyBundle:Table', 'n')
->where('n.status IN (1, -1)');
return $queryBuilder->getQuery()->getResult();
ha pronunciato la seguente eccezione:
[Syntax Error] line 0, col 96: Error: Expected Literal, got '-'
Questa è la definizione di attributo all'interno dell'entità:
/**
* @var integer
*
* @ORM\Column(name="status", type="integer", nullable=true)
*/
private $status;
Se io uso solo numeri positivi all'interno l'argomento in
, funzionerà. L'eccezione si verifica solo con numeri negativi.
Che cosa causa questa eccezione?
I trattini non sono ammessi come potrebbero essere parte di un attacco SQL injection. O eliminare il trattino o scomporre il numero negativo in un parametro. –