Про инкремент в UPDATE запросе Doctrine ORM
// 10 сентября, 2010 // Doctrine, PHP, Веб-разработка
Сегодня обнаружил с коллегой особенность при создании DQL-запроса.
Оказывается конструкции вида
$q = Doctrine_Query::create() ->update('Account') ->set('amount', 'amount+200') ->where('id > 200');
не срабатывали. А дело было как всегда в мелочи. В двух пробелах слева и справа от знака операции (+).
Исправили на вариант, полностью аналогичный мануалу:
$q = Doctrine_Query::create() ->update('Account') ->set('amount', 'amount + 200') ->where('id > 200');
и все чудесным образом заработало.
Мораль: Если DQL глючит, всегда первым делом смотрите какой SQL-запрос он порождает!
Спасибо!
Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:
Спасибо, что разобрался. Но какого ….. оно так работает!
Пожалуйста! Видимо особенности парсера Doctrine.