如何通过ThinkPHP实现复杂业务场景下的长尾词事务操作案例分析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计374个文字,预计阅读时间需要2分钟。
原文:本文字例讲述了thinkPHP事务操作。
本例展示了ThinkPHP中的事务处理方法。具体如下:
1. 说明:使用`Db::startTrans()`开启事务,然后在try块中执行操作,包括对象保存等。成功后调用`Db::commit()`提交事务。如果发生异常,则捕获异常,回滚事务并抛出异常。
php Db::startTrans(); try { // 操作 $object->save(); Db::commit(); } catch (Exception $ex) { Db::rollback(); throw $ex; }
2. 案例:使用私有函数实现。
php private function executeTransaction() { Db::startTrans(); try { // 操作 $object->save(); Db::commit(); } catch (Exception $ex) { Db::rollback(); throw $ex; } }
本文实例讲述了thinkPHP事务操作。分享给大家供大家参考,具体如下:
1.说明
Db::startTrans(); try{ 操作; 对象->save(); Db::commit(); } catch (Exception $ex) { Db::rollback(); throw $ex; }
2.案例
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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
本文共计374个文字,预计阅读时间需要2分钟。
原文:本文字例讲述了thinkPHP事务操作。
本例展示了ThinkPHP中的事务处理方法。具体如下:
1. 说明:使用`Db::startTrans()`开启事务,然后在try块中执行操作,包括对象保存等。成功后调用`Db::commit()`提交事务。如果发生异常,则捕获异常,回滚事务并抛出异常。
php Db::startTrans(); try { // 操作 $object->save(); Db::commit(); } catch (Exception $ex) { Db::rollback(); throw $ex; }
2. 案例:使用私有函数实现。
php private function executeTransaction() { Db::startTrans(); try { // 操作 $object->save(); Db::commit(); } catch (Exception $ex) { Db::rollback(); throw $ex; } }
本文实例讲述了thinkPHP事务操作。分享给大家供大家参考,具体如下:
1.说明
Db::startTrans(); try{ 操作; 对象->save(); Db::commit(); } catch (Exception $ex) { Db::rollback(); throw $ex; }
2.案例
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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

