数据库事务实现

浏览:1035 发布日期:2013/12/30 分类:求助交流 关键字: 事务
请问这个方法得用到数据库事务,我应该怎么实现呢public function payForTask(){
        //修改任务状态
        $Task = D("Task");
        $task_info = $Task->where(array('id'=>$_POST['taskId']))->find();
        $task_res = $Task->where(array('id'=>$_POST['uid']))->setField('taskState','2');
        //扣除用户任务金额
        $User = D("User");
        $user_info = $User->where(array('id'=>$_POST['uid']))->find();
        if($user_info['money']<$_POST['money']){
            $arr = array('flag'=>'error','message'=>'用户余额不足,付款失败');
            print json_encode($arr);exit;
        }
        $user_res = $User->where(array('id'=>$_POST['uid']))->setDec('money',$_POST['money']);
        //写入用户账单表
        $Bill = D("Bill");
        $bill_data['uid'] = $_POST['uid'];
        $bill_data['money'] = $task_info['money'];
        $bill_data['taskId'] = $_POST['taskId'];
        $bill_data['moneyType'] = '1';
        $bill_data['dealTime'] = time();
        $bill_res = $Bill->add($bill_data);
        if($task_res && $user_res && $bill_res){
            $arr = array('flag'=>'success','message'=>'付款成功');
        }else{
            $arr = array('flag'=>'success','message'=>'付款成功');
        }
        print json_encode($arr);

    }
最佳答案
评论( 相关
后面还有条评论,点击查看>>