3

I would like find the correct syntax for the SET line:

Doctrine_Query::create()
->update('Media m')
->set('m.fallback IF(m.id = ?, 1, 0)', $id)  <-- not correct
->execute();

Thanks for any help!

cyberwombat
  • 38,105
  • 35
  • 175
  • 251
  • 1
    I dont think update supports that... actually update doesnt support much more than simple where clauses, You mahve to resort to RawSql or using PDO. – prodigitalson Jul 21 '11 at 17:22

1 Answers1

0

I think that could be done with two queries:

Doctrine_Query::create()
    ->update('Media m')
    ->set('m.fallback', 1)
    ->where('m.id = ?', $id)
    ->execute();

Doctrine_Query::create()
    ->update('Media m')
    ->set('m.fallback', 0)
    ->where('m.id != ?', $id)
    ->execute();

I don't know if it suits you, but at least that will do what you want. May not work out of the box, as I don't have Doctrine 1.2 at hand, so can't test this. But I think the idea is clear :)

J0HN
  • 26,063
  • 5
  • 54
  • 85