<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                一,創建一個order類,在其中應用事務 1,創建order的model ~~~ liuhongdi@lhdpc:/data/php/admapi$ php think make:model Order Model:app\model\Order created successfully. ~~~ 2,代碼: model/Order.php [![復制代碼](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0); "復制代碼") ~~~ <?php declare (strict_types = 1); namespace app\model; use think\Exception; use think\facade\Db; use think\Model; /** * @mixin \think\Model */ class Order extends Model { //類名與表名不一致時在這里指定數據表名 protected $table = "orderInfo"; public function addOrderAndGoods($orderRow,$goodsRows) { //啟動事務 Db::startTrans(); try { $result = Db::table("orderInfo")->insert($orderRow); if(!$result){ throw new Exception("insert order失敗"); } //得到orderid $orderId = Db::table('orderInfo')->getLastInsID();; //$z = 0; //$a = 100 / $z; foreach ($goodsRows as $k => $row){ $row['orderId'] = $orderId; $result = Db::table("orderGoods")->insert($row); if(!$result){ throw new Exception("insert goods失敗"); } } // 提交事務 Db::commit(); //} catch (Exception $e){ } catch (\Throwable $e){ // 事務回滾 Db::rollback(); return false; } return true; } } ~~~ [![復制代碼](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0); "復制代碼") 說明:劉宏締的架構森林是一個專注架構的博客,地址:[https://www.cnblogs.com/architectforest](https://www.cnblogs.com/architectforest) ? ? ? ? ?對應的源碼可以訪問這里獲取:?[https://github.com/liuhongdi/](https://github.com/liuhongdi/) 說明:作者:劉宏締 郵箱: 371125307@qq.com ## 二,controller/Order.php 1,創建controller ~~~ liuhongdi@lhdpc:/data/php/admapi$ php think make:controller Order Controller:app\controller\Order created successfully.? ~~~ 2,代碼 [![復制代碼](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0); "復制代碼") ~~~ class Order extends BaseController { /* 創建訂單 */ public function addOrder() { $orderRow = [ "orderStatus"=>0, "addTime"=>date("Y-m-d H:i:s"), "price"=>"10.5", "subject"=>"訂單:".date("YmdHis")."_".rand(100,999), ]; $goodsRows = [ [ "goodsId"=>15, "goodsName"=>"洽洽瓜子新年1裝".date("YmdHis")."_".rand(100,999), ], ]; $order = new OrderModel(); $isSucc = $order->addOrderAndGoods($orderRow,$goodsRows); if ($isSucc){ return Result::Success("成功"); } else { return Result::Error(1,"報錯"); } } } ~~~ [![復制代碼](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0); "復制代碼") ## 三,測試效果: 1,成功: 查看order表: ![](https://img.kancloud.cn/0c/e6/0ce6329f7926adef5cd25e352012a8fd_842x291.png) 查看goods表: ![](https://img.kancloud.cn/2f/d2/2fd2df32fe63bf2a39e159cff30698b2_842x284.png) 訪問: ~~~ http://127.0.0.1:8000/order/addorder ~~~ 返回: ![](https://img.kancloud.cn/99/fb/99fb6ec31eef7bdcb490c669e5a74827_422x187.png) 查看增加的數據: ![](https://img.kancloud.cn/93/ce/93ce32b68695885dfff48aa799cf5f66_843x360.png) ![](https://img.kancloud.cn/bf/1a/bf1ad9f0ed47effe3438476ddd5ee071_843x310.png) 2,失敗: 此處需要model/Order.php中的 ~~~ //$z = 0; //$a = 100 / $z; ~~~ 此兩行代碼取消注釋,生成一個除0錯: 訪問: ~~~ http://127.0.0.1:8000/order/addorder ~~~ 返回: ![](https://img.kancloud.cn/fa/89/fa8966507ba71fe194744d69c6d35e5f_389x185.png) 查看數據庫: 可以看到order表和goods中的數據都沒有增加 注意觀察,可以發現order表中的自增id會增長, 是因為在添加數據后事務中出現異常時進行了回滾 ## 四,查看php和thinkphp的版本:? php: ~~~ liuhongdi@lhdpc:/data/php/admapi$ php --version PHP 8.1.1 (cli) (built: Dec 20 2021 16:12:16) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.1, Copyright (c) Zend Technologies with Zend OPcache v8.1.1, Copyright (c), by Zend Technologies? ~~~ thinkphp: ~~~ liuhongdi@lhdpc:/var/www/html$ cd /data/php/admapi/ liuhongdi@lhdpc:/data/php/admapi$ php think version v6.0.10LTS ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看