Вопросительный знак DQL не рассматривается? - PullRequest
0 голосов
/ 23 июня 2011

У меня следующий запрос 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 должен делать это автоматически.Почему не происходит?

1 Ответ

3 голосов
/ 23 июня 2011

Вот как работает подготовленное утверждение.Значения будут привязаны к серверу базы данных. Следовательно, doctrine не может отображать реальные значения с запросом.

Doctrine покажет знак вопроса, если вы используете подготовленное утверждение, а не реальное значение.

Проверьте, как оноописывает здесь

...