教义 2 - 从 $em->find() 获取 SQL
Posted
技术标签:
【中文标题】教义 2 - 从 $em->find() 获取 SQL【英文标题】:Doctrine 2 - getSQL from $em->find() 【发布时间】:2012-07-20 21:08:56 【问题描述】:谁能告诉我,如何从$em->find()
方法中获取纯SQL?
【问题讨论】:
为什么需要这个?出于调试目的?如果那是您想要做的,我建议您使用 mysql 查询日志。 @Max 是的,但是如果我不使用 MySql 会怎样:>? 你应该,它有一个查询日志:> @Max 是的,但我认为 PostgreSQL 比 MySQL 更好(虽然我现在使用的是 MySQL)。不过,我需要针对这个问题的通用解决方案。 @Max And... 我想从浏览器中检查 SQL 查询。 【参考方案1】:你的问题不清楚。
如果您的意思是“是否可以使用原始 SQL 查找对象”,请查看 Native SQL section in the Doctrine 2 documentation; 如果您的意思是“是否可以查看由 Doctrine 查询生成的 SQL”,请配置 SQL 记录器,如 this answer 中所述。【讨论】:
我知道,使用getSQL()
方法从$entity_manager->createQuery()
获取原始SQL 是可能的。我在问,是否可以从 $entity_manager->find()
方法获取原始 SQL。
SQL 记录器为您提供由 Doctrine 2 生成的所有个查询的输出。如果您只需要此信息进行调试,那就可以了。
你能给我一些关于如何使用它的说明吗?
$em->getConfiguration()->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger);
好的,我怎样才能从这个记录器中获取这些 SQL 查询?以上是关于教义 2 - 从 $em->find() 获取 SQL的主要内容,如果未能解决你的问题,请参考以下文章