本文实例讲述了thinkPHP事务操作。分享给大家供大家参考,具体如下:
1.说明
1
2
3
4
5
6
7
8
9
10
|
Db::startTrans(); try { 操作; 对象->save(); Db::commit(); } catch (Exception $ex ) { Db::rollback(); throw $ex ; } |
2.案例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
private function createOrderByTrans( $snap ) { Db::startTrans(); try { $orderNo = $this ->makeOrderNo(); $order = new OrderModel(); $order ->user_id = $this ->uid; $order ->order_no = $orderNo ; $order ->total_price = $snap [ 'orderPrice' ]; $order ->total_count = $snap [ 'totalCount' ]; $order ->snap_img = $snap [ 'snapImg' ]; $order ->snap_name = $snap [ 'snapName' ]; $order ->snap_address = $snap [ 'snapAddress' ]; $order ->snap_items = json_encode( $snap [ 'pStatus' ]); $order ->save(); $orderID = $order ->id; $create_time = $order ->create_time; foreach ( $this ->oProducts as & $p ) { $p [ 'order_id' ] = $orderID ; } $orderProduct = new OrderProduct(); $orderProduct ->saveAll( $this ->oProducts); Db::commit(); return [ 'order_no' => $orderNo , 'order_id' => $orderID , 'create_time' => $create_time ]; } catch (Exception $ex ) { Db::rollback(); throw $ex ; } } |
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/fujian9544/article/details/94597040