$tran_result = true; $trans = M(); $trans->startTrans(); // 开启事务 try { // 异常处理 // 更新实施 $busbidList = M("busbid")->where($map)->select(); foreach($busbidList as $k => $v) { $map['id'] = $busbidList[$k]['id']; $result = M('busbid')->where($map)->data($data)->save(); if ($result === false) { throw new Exception(“错误原因”); } } } catch (Exception $ex) { $tran_result = false; // 记录日志 Log::record("== xxx更新失败 ==", 'DEBUG'); Log::record($ex->getMessage(), 'DEBUG'); } if ($tran_result === false) { $trans->rollback(); // 更新失败 $array['status'] = 0; } else { $trans->commit(); // 更新成功 $array['status'] = 1; }
1 /* 2 3 * 添加酒店和房型 4 5 * */ 6 7 public function insertAll($arr_hotel=array(),$arr_room=array()){ 8 9 10 $model = new Model(); 11 12 $model->startTrans(); 13 14 15 $flag=false; 16 17 18 $hid = $model->table(C('DB_PREFIX').'hotel')->add($arr_hotel); 19 20 if( $hid && count($arr_room) ==0 ){//如果没有传入房型的信息则,直接提交数据 21 22 23 24 $flag=true; 25 26 }else if( $hid && count($arr_room) >= 0){//存在对应房型信息,则添加对应的酒店编号,并处理提交 27 28 for($i=0 ; $i<count($arr_room) ; $i++){ 29 30 $arr_room[$i]['hid'] = $hid; 31 32 } 33 34 $rid = $model->table(C('DB_PREFIX').'room')->addAll($arr_room); 35 36 if( $rid ){ 37 38 $model->commit(); 39 40 $flag=true; 41 42 } 43 44 } 45 46 47 if(!$flag){ 48 49 $model->rollback(); 50 51 }else{ 52 53 $model->commit(); 54 55 } 56 57 return $flag; 58 59 }