当前位置:首页 > CMS教程 > Thinkphp > 列表

thinkPHP事务操作简单案例分析

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-08 15:41:54 浏览: 评论:0 

这篇文章主要介绍了thinkPHP事务操作,结合简单案例形式分析了thinkPHP事务操作的基本原理与使用方法,需要的朋友可以参考下。

本文实例讲述了thinkPHP事务操作,分享给大家供大家参考,具体如下:

1.说明

  1. Db::startTrans(); 
  2. try{ 
  3.   操作; 
  4.   对象->save(); 
  5.   Db::commit(); 
  6. } 
  7. catch (Exception $ex) { 
  8.   Db::rollback(); 
  9.   throw $ex; 
  10. } 

2.案例

  1. private function createOrderByTrans($snap) 
  2. { 
  3.     Db::startTrans(); 
  4.     try { 
  5.       $orderNo = $this->makeOrderNo(); 
  6.       $order = new OrderModel(); 
  7.       $order->user_id = $this->uid; 
  8.       $order->order_no = $orderNo; 
  9.       $order->total_price = $snap['orderPrice']; 
  10.       $order->total_count = $snap['totalCount']; 
  11.       $order->snap_img = $snap['snapImg']; 
  12.       $order->snap_name = $snap['snapName']; 
  13.       $order->snap_address = $snap['snapAddress']; 
  14.       $order->snap_items = json_encode($snap['pStatus']); 
  15.       $order->save(); 
  16.       $orderID = $order->id; 
  17.       $create_time = $order->create_time; 
  18.       foreach ($this->oProducts as &$p) { 
  19.         $p['order_id'] = $orderID; 
  20.       } 
  21.       $orderProduct = new OrderProduct(); 
  22.       $orderProduct->saveAll($this->oProducts); 
  23.       Db::commit(); 
  24.       return [ 
  25.         'order_no' => $orderNo, 
  26.         'order_id' => $orderID, 
  27.         'create_time' => $create_time 
  28.       ]; 
  29.     } catch (Exception $ex) { 
  30.       Db::rollback(); 
  31.       throw $ex; 
  32.     } 
  33. }

Tags: thinkPHP事务操作

分享到: