TP框架 数据库的事务操作

注:操作的数据表必须是innodb类型,不然失败不会回滚


TP3 数据库的事务操作


$order = M('order');  //修改订单状态  
$order_detailed = M('order_detailed');  //修改订单详情表
$order->startTrans();  //开启事务order     
$order_detailed->startTrans();  //开启事务order_detailed  
$reorder = $order->where()->save($dataorder);  //处理数据  
$reorder_detailed = $order_detailed->where()->save($dataorder);  
if($reorder_detailed  && $reorder){  //如果修改失败,则回滚  
    $order->commit();   //全部完成,则提交事物  
    $order_detailed->commit();  
}else{  
    $order->rollback();  //事物回滚  
    $order_detailed->rollback();  
}  

TP5 数据库的事务操作



Db::startTrans();
try{
    $re1 = Db::table(config('database.prefix').'biao1')->where()->setInc();
    $re2 = Db::table(config('database.prefix').'biao2')->where()->setField('state','0');
    if($re1 && $re2){
        Db::commit();  // 提交事务
        return ['code'=>1,'msg'=>'操作成功!'];
    }else{
        Db::rollback();
    }
} catch (\Exception $e) {
    Db::rollback();   // 回滚事务
}
return ['code'=>0,'msg'=>'操作失败!'];

你可能感兴趣的:(PHP)