全局转义变量

时间:2014-11-14 10:18:06

标签: php mysql symfony doctrine-orm

要获取查询结果,我使用以下方法:

$result = $this->getEntityManager()->createQuery($dql)->getResult();

其中$ dql变量只是DQL查询字符串。问题是当我在查询字符串的变量中添加撇号时,例如:

SELECT * FROM users WHERE login = 'Foo's'

实际上只是在输入中输入Foo's字符串,给出了symfony错误,因为查询字符串没有被转义。

我该如何解决这个问题?

我的项目中有很多getResult()方法,还有很多查询,所以我真的不想改变编写查询的整个概念。

有办法吗?

1 个答案:

答案 0 :(得分:0)

最佳解决方案:将查询重写为:bindVariables 新手解决方案:创建onKernelRequest事件并修改Request对象中的所有内容 最糟糕的解决方案:修改$ _POST,$ _GET并在app.php中重新创建全局变量请求

P.S。 在repositiories之外没有疑问:) http://www.slideshare.net/kriswallsmith/how-kris-writes-symfony-apps