您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp3.1.3多表(跨模型)事务回滚
发布时间:2017-04-28 22:06:07编辑:雪饮阅读()
public function rollbackTest(){
$data=array(
'user_id'=>11,
'state'=>1,
'businesses_id'=>1,
'start_time'=>date("Y-m-d H:i:s",time()),
'username'=>"xy",
'userphone'=>15829270113,
'useraddress'=>"dddd",
'address_lng'=>123,
'address_lat'=>123,
'clothescount'=>1,
'user_make_time'=>1,
'businesses_name'=>1,
'money'=>1,
'remark'=>1,
);
$msg=1;
$error="";
$m=M("s_order");
$m->startTrans(); //在s_order表中开启事物
$id=$m->data($data)->add();
if(!$id){
$msg=0;
$error=$m->getDbError();
echo "<pre>";
print_r($error);
echo "</pre>";
}
else{
$m1=M("s_order_list");
$flag=1;
$list=array(
array("orderId"=>$id,"id"=>1,"Clothes_count"=>2,"name"=>"xy"),
array("orderId"=>$id,"id"=>2,"Clothes_count"=>3,"name"=>"2xy"),
array("orderId"=>$id,"id"=>3,"Clothes_count"=>4,"name"=>"3xy"),
);
foreach($list as $key=>$val){
$id1=$m1->data($val)->add();
if(!$id1){
$flag=0;
$msg=0;
$error=$m1->getDbError();
echo "<pre>";
print_r($error);
echo "</pre>";
break;
}
}
//事务可以跨模型,所以可以在此处将上述多表操作进行回滚或者提交
if($flag){$m->commit();}
else{$m->rollback();}
}
}
'user_id'=>11,
'state'=>1,
'businesses_id'=>1,
'start_time'=>date("Y-m-d H:i:s",time()),
'username'=>"xy",
'userphone'=>15829270113,
'useraddress'=>"dddd",
'address_lng'=>123,
'address_lat'=>123,
'clothescount'=>1,
'user_make_time'=>1,
'businesses_name'=>1,
'money'=>1,
'remark'=>1,
);
$msg=1;
$error="";
$m=M("s_order");
$m->startTrans(); //在s_order表中开启事物
$id=$m->data($data)->add();
if(!$id){
$msg=0;
$error=$m->getDbError();
echo "<pre>";
print_r($error);
echo "</pre>";
}
else{
$m1=M("s_order_list");
$flag=1;
$list=array(
array("orderId"=>$id,"id"=>1,"Clothes_count"=>2,"name"=>"xy"),
array("orderId"=>$id,"id"=>2,"Clothes_count"=>3,"name"=>"2xy"),
array("orderId"=>$id,"id"=>3,"Clothes_count"=>4,"name"=>"3xy"),
);
foreach($list as $key=>$val){
$id1=$m1->data($val)->add();
if(!$id1){
$flag=0;
$msg=0;
$error=$m1->getDbError();
echo "<pre>";
print_r($error);
echo "</pre>";
break;
}
}
//事务可以跨模型,所以可以在此处将上述多表操作进行回滚或者提交
if($flag){$m->commit();}
else{$m->rollback();}
}
}
注意:表引擎必须支持事务处理
关键字词:thinkphp,多表,事务,回滚
上一篇:navicat中设置外键约束
下一篇:php上传大文件配置