mysql - 问号DQL是不是没有考虑?

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

最佳答案

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

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

看看它是如何描述的 here

关于mysql - 问号DQL是不是没有考虑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6453121/

相关文章:

php - Doctrine native sql查询更新

mysql - 我在连接3个MySQL表时遇到问题,如何改善语法?

php - 在 Yii 中设置默认时区

mysql - 为什么 find_in_set 有效但 IN 子句

php - 在 Symfony : How to exclude module from filters chain

php - 使用 Symfony 1.4 的自动加载器加载命名空间类?

javascript - javascript中如何从数据库中获取数据

insert - 如何在 DQL 中进行插入查询

php - MySQL UNION 不返回唯一列

symfony1 - 在 schema.yml 中设置 Doctrine_Collection 键映射属性