为了账号安全,请及时绑定邮箱和手机立即绑定

Yii2更新数据的问题

Yii2更新数据的问题

Yii
有只小跳蛙 2018-08-08 17:34:46
框架是yii2用户表中一个余额字段balance.用户1 userId=1 现在余额 100.00 元用户2 userId=2和用户3 userId=3 同时向用户1转款100元。这是当时的情况。转账用的方法:public function transfer(){        $userId = 1;        $user = User::findOne($userId);        $newBalance = $user['balance'] + 100;        $user->balance = $newBalance;        $user->save(false);    }用户2,3同时转账,但是用户1只能收到100元。。。只能用锁的方式或者原生sql语句来保证数据的正确性吗?
查看完整描述

2 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

更新余额你可以换种方式,不用先查出来再update;而是直接更新,sql就是set balance = balance + 100

查看完整回答
反对 回复 2018-08-12
?
呼如林

TA贡献1798条经验 获得超3个赞

这种我一般使用原生SQL来做。
sql

UPDATE USER SET balance=balance+100 WHERE user_id=:uid;

yii2

Yii::$app->db->createCommand($sql,[':uid'=>$userId])->execute();


查看完整回答
反对 回复 2018-08-12
  • 2 回答
  • 0 关注
  • 1845 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信