通常在我的项目中,我将 DQL 查询用于非简单的数据库语句。是否有必要或推荐使用带有 DQL 查询的 prepare() 函数?
我正在对此进行研究,但在官方文档中并没有说明这一点;也确实,其中 prepare() 函数仅用于 SQL 查询。
通常在我的项目中,我将 DQL 查询用于非简单的数据库语句。是否有必要或推荐使用带有 DQL 查询的 prepare() 函数?
我正在对此进行研究,但在官方文档中并没有说明这一点;也确实,其中 prepare() 函数仅用于 SQL 查询。
Doctrine 2 ORM 查询甚至没有prepare()
方法(参见Doctrine\ORM\AbstractQuery
API)。
在内部,ORM 保留一个“脏”状态标志,告诉 ORM 是否需要重新解析查询。解析后,该标志被删除,再次执行查询时不需要进一步的操作。
当您执行查询时,它会被抛出 DBAL 层,该层prepare()
会在需要时自行处理调用(取决于平台),因此您不必手动处理。
正如您所看到的,事情已经为您优化了开箱即用。