0

我有以下 DQL 查询:

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

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

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 应该自动执行此操作。为什么没有发生?

4

1 回答 1

3

这就是准备好的语句的工作方式。值将绑定在数据库服务器上因此学说无法通过查询显示真实值。

如果您使用准备好的语句而不是实际值,则 Doctrine 将显示一个问号。

在这里查看它的描述方式

于 2011-06-23T11:26:26.810 回答