我们需要根据表中的现有数据更新记录,这是我手动创建的查询,只是为了解释此查询使用金额字段通过减去51%的值来更新奖金字段数据。
update users set final_amount = amount-(amount*51/100) where id = 1
这是我的symfony代码
$q = Doctrine_Query::create()
->update('Users')
->set('final_amount',"'". $amount."'")
->where('id =1')->execute();
答案 0 :(得分:3)
这很容易,甚至还有例子in the documentation。
$q = Doctrine_Query::create()
->update('users')
->set('final_amount', 'amount-(amount*51/100)')
->where('id = ?', 1)->execute();
DQL解析器非常智能,可以检测设置部分中的列。
顺便说一下,请勿使用->where('id =1')
,而是使用->where('id = ?', 1)
。
答案 1 :(得分:0)
我希望我做对了。它很简单:
$query = Doctrine_Query::create()
->update('Users')
->set('final_amount', $amount - $amount * 51 / 100)
->where('id = 1')
->execute();