tp 中多个表进行事物回滚
public function correct(){
$cid=I('get.cid',0);
if(empty($cid)){
$rData=array('status'=>0,'info'=>'参数丢失');
}else{
$Guess=M('Guess');
$Guess->startTrans();
$map['id']=$cid;
$data['isvoer']=1;
$data['createtime']=time();
$rs=$Guess->where($map)->setField($data);
$res=$Guess->where($map)->field('tuid,reward')->find();
$Gold=M('Gold');
$Gdata['uid']=$res['tuid'];
$Gdata['createtime']=time();
$Gdata['in_out']=1;
$Gres=$Gold->data($Gdata)->add();
if($Gres){
$Gres->commit();
$Member=M('Member');
$Mres=$Member->where('id='.$res['tuid'])->getField('goldnum');
$Mdata['goldnum']=$res['reward']+$Mres;
$Mdata['createtime']=time();
$result=$Member->where('id='.$res['tuid'])->setField($Mdata);
if($result){
$result->commit();
$rData=array('status'=>1,'info'=>'成功');
}else{
$result->rollback();
$rData=array('status'=>0,'info'=>'失败');
}
}else{
$rData=array('status'=>0,'info'=>'操作失败');
}
}
echo json_encode($rData);
}