Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

因为项目需要用到sql server数据库 刚上手使用事务的时候就遇到这个错误 网上好像找不到相关的资料 有朋友知道怎么排查问题吗?
用的是tp5+sql server
image

     Db::startTrans();// 启动事务
        try{
            if($id == session('uid')){
                return ['code'=>100,'data' => '','msg'=>'不可禁用自己','type'=>'no'];
            }else {
                $this->where ('id' , $id)->setField (['status' => $num]);
                Db::commit();// 提交事务
      
                   return ['code' => 200, 'data' => '', 'msg' => '已'.$msg];
            }
       }catch( Exception $e) {
            Db::rollback();//回滚事务
       
            return ['code' => 100, 'data' => '', 'msg' => $msg . '失败'];
        }
    }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
666 views
Welcome To Ask or Share your Answers For Others

1 Answer

sql server不熟悉 但是代码上 给个建议。。
尽量别if else 用拦截法判断 再事务开始就可以做过滤 而且没涉及到db操作
代码会可读性和编写性好点

if($id == session('uid')){
                return ['code'=>100,'data' => '','msg'=>'不可禁用自己','type'=>'no'];
 }
Db::startTrans();// 启动事务
        try{
                $this->where ('id' , $id)->setField (['status' => $num]);
                Db::commit();// 提交事务
                return ['code' => 200, 'data' => '', 'msg' => '已'.$msg];
            }
       }catch( Exception $e) {
            Db::rollback();//回滚事务
            return ['code' => 100, 'data' => '', 'msg' => $msg . '失败'];
        }
    }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...