更新行的cakephp函数不起作用

更新行的cakephp函数不起作用,cakephp,save,sql-update,Cakephp,Save,Sql Update,我在CakePHP更新中遇到了这个问题。我尝试使用该函数更新数据库中的一行(见下文): function updateRow($amount,$user\u id){ $user\u balance=$this->getUserBalance($user\u id); //现在更新 $balance['balance']['id']=$user\u balance['balance'][id]; $balance['balance']['amount']=$user\u balance['bal

我在CakePHP更新中遇到了这个问题。我尝试使用该函数更新数据库中的一行(见下文):

function updateRow($amount,$user\u id){
$user\u balance=$this->getUserBalance($user\u id);
//现在更新
$balance['balance']['id']=$user\u balance['balance'][id];
$balance['balance']['amount']=$user\u balance['balance'][amount]+$amount;
$this->Balance->save($Balance);
}
如果我叫它一次,比如:

$this->updateRow(100,5);
一切都好。但如果我试着叫它两次或更多次,比如:

$this->updateRow(100,5);
$this->updateRow(200,5);
$this->updateRow(150,5);
调用了该函数,但实际上只有最后一次更新是在db中完成的!!(例如,初始金额值为100。在三次通话结束时,我预期金额值为550,但它是250!)

你有解决这个问题的办法吗?thx提前

请参阅的答案以供参考


您应该在此处使用原子方法updateAll()。

为什么不在此处使用原子查询?updateAll()在您的案例中-请参阅其他问题和解决方案,这些问题和解决方案将使此重复。提示“increment+updateAll”作为关键字。我首先搜索它,但所有的解决方案似乎都不适合我。。。我尝试使用updateAll方法和SQL查询方法,但我无法解决我的问题。。有什么建议吗?您为updateAll()尝试的代码是什么?我在这里找到了解决方案:-->我的updateAll sintax有问题。谢谢