我有以下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应该自动执行此操作。为什么不发生?
最佳答案
这是准备好的语句的工作方式。值将绑定到数据库服务器上,因此该学说不能显示查询的真实值。
如果您使用准备好的语句而不是实际值,则教义将显示一个问号。
查看它如何描述here
关于mysql - 不考虑问号DQL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6453121/