function ac(){ $obj=new \app\admin888\model\ProductsModel; $b=1;//标志成功的状态,一般失败,就修改其为0 for($j=0;$j<=10;$j++){ for($i=0;$i<=5;$i++){ $obj->db->query("insert into cbd_products_attr_guige set uid=5"); if($i==4){//一旦与遇错 //Db::rollback();//可以省略,在try那里一起操作 $b=0;//设置出错标志 break;//终止本次循环,不可少。 } } if(!$b){//外层循环中判断里面有错误,则外层也终止。数据库回滚。 //Db::rollback();在try那里一起操作 break;//终止本次循环,不可少。 } } //echo 1; return $b; } function trya(){ // 启动事务 Db::startTrans(); try{ $b=$this->ac(); if($b){ Db::commit(); return 1; }else{ Db::rollback(); return 0; } } catch (\Exception $e) { //echo 0; // 回滚事务 Db::rollback(); return 2; } } //测试 function cs(){ echo $this->trya(); }