问题描述
|
我有以下DQL查询:
$query = Doctrine_Query::create()
->select(\'p.genre\')
->from(\'Profile p\')
->where(\'sf_guard_user_id = ?\',11);
如果返回带有Syntax1的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应该自动执行此操作。为什么不发生?
解决方法
这是准备好的语句的工作方式。值将绑定在数据库服务器上,因此该学说不能显示查询的真实值。
如果您使用准备好的语句而不是实际值,则教义将显示一个问号。
看看这里的描述