zoukankan      html  css  js  c++  java
  • ThinkPHP 事务处理 (事务回滚) 、异常处理

                    $trans_result = true;
                    $trans = M();
                    $trans->startTrans();   // 开启事务
    
                    try {   // 异常处理
                        // 更新实施
                        $busbidList = M("busbid")->where($map)->select();
                        foreach($busbidList as $k => $v) {
                            $map['id'] = $busbidList[$k]['id'];
                            $result = M('busbid')->where($map)->data($data)->save();
                            if ($result === false) {
                                throw new Exception(“错误原因”);
                            }
                        }
                    } catch (Exception $ex) {
                        $trans_result = false;
    // 记录日志
    Log::record("== xxx更新失败 ==", 'DEBUG'); Log::record($ex->getMessage(), 'DEBUG'); } if ($trans_result === false) { $trans->rollback(); // 更新失败 $array['status'] = 0; } else { $trans->commit(); // 更新成功 $array['status'] = 1; }


    方式二:

      
    M()->startTrans();  // 开启事务
    
    if(操作失败) {
        M()->rollback();  // 回滚
    
    }else {
        M()->commit();  // 提交
    }
    
    
    

    方式三:

    1.引用TP5的thinkDb类:
    use thinkDb;
    
    2.下面为实现代码:
    
    Db::startTrans();
    
    //启动事务
    
    try {
    
      这里写SQL语句
    
      Db::commit(); //提交事务
    
    } catch (PDOException $e) {
    
      Db::rollback(); //回滚事务
    
    }

    
    
  • 相关阅读:
    那些年伴我一起成长的SAP装备
    1079. Total Sales of Supply Chain (25)
    1132. Cut Integer (20)
    1074. Reversing Linked List (25)
    1071. Speech Patterns (25)
    1070. Mooncake (25)
    1067. Sort with Swap(0,*) (25)
    1063. Set Similarity (25)
    1066. Root of AVL Tree (25)
    1059. Prime Factors (25)
  • 原文地址:https://www.cnblogs.com/wangyuman26/p/5746542.html
Copyright © 2011-2022 走看看