问题DQL不被考虑?

时间:2011-06-23 11:12:51

标签: mysql symfony-1.4 doctrine-1.2 dql

我有以下DQL查询:

$query = Doctrine_Query::create()
                ->select('p.genre')
                ->from('Profile p')
                ->where('sf_guard_user_id = ?',  11);

如果我使用$sql = $query->getSqlQuery();返回SQL语法,我得到:

SELECT p.id AS p__id, p.genre AS p__genre FROM profile p WHERE (p.sf_guard_user_id = ?)

这不正常。它应该 11 而不是

SELECT p.id AS p__id, p.genre AS p__genre FROM profile p WHERE (p.sf_guard_user_id = 11)

如果我写:

$query = Doctrine_Query::create()
                ->select('p.genre')
                ->from('Profile p')
                ->where('sf_guard_user_id = ' .  11);

SQL语法是正确的。

通常DQL应该自动执行此操作。为什么不发生?

1 个答案:

答案 0 :(得分:3)

这就是预备语句的工作原理。值将绑定在数据库服务器上。因此,doctrine无法显示查询的实际值。

如果您使用预准备陈述而不是真实值,则Doctrine将显示问号。

查看它如何描述here