2

通常在我的项目中,我将 DQL 查询用于非简单的数据库语句。是否有必要或推荐使用带有 DQL 查询的 prepare() 函数?

我正在对此进行研究,但在官方文档中并没有说明这一点;也确实,其中 prepare() 函数仅用于 SQL 查询。

4

1 回答 1

2

Doctrine 2 ORM 查询甚至没有prepare()方法(参见Doctrine\ORM\AbstractQueryAPI)。

在内部,ORM 保留一个“脏”状态标志,告诉 ORM 是否需要重新解析查询。解析后,该标志被删除,再次执行查询时不需要进一步的操作。

当您执行查询时,它会被抛出 DBAL 层,该层prepare()会在需要时自行处理调用(取决于平台),因此您不必手动处理。

正如您所看到的,事情已经为您优化了开箱即用。

于 2013-03-29T12:47:26.177 回答