M()->startTrans();
$payOb=D('SPayLog');
if($payOb->create($_POST)){
$balance_old=M($this->table)->where(array('id'=>$member_id))->getField('balance');
$_POST['balance']=$pay+$balance_old;
$_POST['mid']=$member_id;
$_POST['uid']=session('uid');
$_POST['process_type']=1;
$_POST['amount']=$pay;
$_POST['created_at']=date("Y-m-d H:i:s",time());
//数据入表
$re=$payOb->add($_POST);
if(!$re){
M()->rollback();
$this->error("操作失败");
}
$re_member=D($this->table)->editData(array('id'=>$member_id),array('balance'=>$_POST['balance']));
if(!$re_member){
M()->rollback();
$this->error("操作失败");
}
M()->commit();
}
$this->success('操作成功!',$return_url)
如果以后发现有更好的写法,再更吧。现在先记录一下。
本文介绍了一种在数据库中更新用户余额并记录支付日志的方法。通过创建支付记录、更新用户余额并确保事务的一致性来实现。文章还提供了一个具体的PHP代码示例。

5180

被折叠的 条评论
为什么被折叠?



