cakephp函数更新一行不起作用
Posted
技术标签:
【中文标题】cakephp函数更新一行不起作用【英文标题】:cakephp function to update a row not work 【发布时间】:2013-02-25 11:02:31 【问题描述】:我在更新 Cakephp 时遇到了这个问题。我尝试使用该函数更新我的数据库中的一行(见下文):
function updateRow($amount, $user_id)
$user_balance = $this->getUserBalance($user_id);
//now update
$balance['Balance']['id'] = $user_balance['Balance'][id];
$balance['Balance']['amount'] = $user_balance['Balance'][amount] + $amount;
$this->Balance->save($balance);
如果我称它为 ONE time ,例如:
$this->updateRow(100,5);
一切都好。但是,如果我尝试调用它两次或更多次,例如:
$this->updateRow(100,5);
$this->updateRow(200,5);
$this->updateRow(150,5);
该函数被调用,但实际上只有最后一次更新是在 db 中完成的! (例如,初始金额值为 100。在三个通话结束时,我预期的金额值为 550 但它是 250!)
您对此有解决方案吗?提前谢谢
【问题讨论】:
为什么不在这里使用原子查询? updateAll() 在您的情况下 - 请参阅其他问题和解决方案,这将使其重复。提示“increment + updateAll”作为关键字。 我先搜索这个,但所有解决方案似乎都不适合我...我尝试使用 updateAll 方法,使用 SQL 查询方法,但我无法解决我的问题.. 有什么建议吗?跨度> 你为 updateAll() 尝试的代码是什么? 我在这里找到了解决方案 :--> ***.com/a/11901870/2004493 我的 updateAll sintax 有问题。谢谢 【参考方案1】:请在CakePHP: add/substract with save()?查看答案以供参考。
你应该在这里使用原子方法 updateAll()。
【讨论】:
以上是关于cakephp函数更新一行不起作用的主要内容,如果未能解决你的问题,请参考以下文章