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函数更新一行不起作用的主要内容,如果未能解决你的问题,请参考以下文章

CakePHP重定向方法不起作用?

CakePHP 3 的关联限制不起作用

CakePHP 2.3.2 BasicAuthentication 不起作用

CakePHP 多选“选中”不起作用

Cakephp 在 IIS 中不起作用?

Cakephp 3:Json 渲染视图不起作用