首页 > 编程语言 >php事务删除加调用日志函数

php事务删除加调用日志函数

时间:2024-03-18 22:32:45浏览次数:24  
标签:调用 name array list content 日志 php type id

public function index( $id, $type, $data )
 {
        $name = '';
        $list = '';
        if ( $type == 1 ) {
            $name = 'store';
        } else if ( $type == 2 ) {
            $name = 'rider';
        } else if ( $type == 3 ) {
            $name = 'deposit';
        } else if ( $type == 4 ) {
            $name = 'refund';
        }
        $list = db( $name )->where( [ 'id'=>$id, 'type'=>1 ] )->count();
        Db::startTrans();
        $ultimately = true;
        try {
            if ( $list != 0 ) {
                $result = new Api();
                $list[ 'userinfo_id' ] = getallheaders()[ 'Id' ];
                $list[ 'addtime' ] = date( 'Y-m-d H:i:s' );
                $list[ 'path' ] = $result->pathse;
                $content = db( $name )->where( [ 'id'=>$id, 'type'=>1 ] )->find();
                $contentsMap = array_combine( array_keys( $data ), array_values( $data ) );

            // 遍历content数组,只保留在contentsMap中存在的键值对
            foreach ( $content as $key => $value ) {
                if ( isset( $contentsMap[ $key ] ) ) {
                    // 如果键存在于contentsMap中,保留该键值对
                    continue;
                }
                // 如果键不存在于contentsMap中,从content数组中移除该键值对
                unset( $content[ $key ] );
            }
            // 提取 $contents 的键作为排序参考  
            $sortedKeys = array_keys($content);
  
            // 使用 uksort 对 $content 进行排序  
            uksort($data, function($a, $b) use ($sortedKeys) {  
                return array_search($a, $sortedKeys) - array_search($b, $sortedKeys);  
            });
                $list[ 'content' ] = json_encode( $content );
                $list[ 'contents' ] = json_encode( $data );
                $list[ 'type' ] = 2;
                $list = db( $name )->where( [ 'id'=>$id, 'type'=>1 ] )->update( $data );
                if ( $list ) {
                    $resultss = $result->daiord( $list );
                    if ( !$resultss ) {
                        DB::rollBack();
                        //错误 回滚事务
                        throw new \Exception( '' );
                    }
                    Db::commit();
                } else {
                    DB::rollBack();
                    //错误 回滚事务
                    throw new \Exception( '' );
                }
            } else {
                DB::rollBack();
                //错误 回滚事务
                throw new \Exception( '' );
            }
        } catch ( \Exception $e ) {
            Db::rollback();
            $ultimately = false;
        }
        if ( $ultimately )return true;
        if ( !$ultimately )return false;
    }

标签:调用,name,array,list,content,日志,php,type,id
From: https://blog.csdn.net/m0_72196169/article/details/135373677

相关文章

  • 借助HttpWebRequest 调用第三方接口,获取Token和数据
    在一次项目中,在给客户做系统时,需要调用客户的系统获取数据,客户提供了获取Token和获取数据的接口,用户名和密码,认证方式是基于Bearer的,通过学习和找资料,提供一个C#示例一个C#示例1、传入语句获取数据///<summary>///传入语句获取数据///</summary>......
  • C++看程序写结果:调用一次Line类构造函数,执行几次Point类复制构造函数?
    C++看程序写结果:调用一次Line类构造函数,执行几次Point类复制构造函数?#include<iostream>#include<cmath>usingnamespacestd;classPoint{//Point类定义public:Point(intxx=0,intyy=0){x=xx;y=yy;}Point(Point&p);......
  • nginx访客日志
    访客日志处理日志模块的官网教程https://nginx.org/en/docs/http/ngx_http_log_module.htmlnginx日志变量的格式,作用找到nginx所有的内置变量,以及作用解释https://nginx.org/en/docs/https://nginx.org/en/docs/http/ngx_http_core_module.html#var_remote_addr当你的ng......
  • Web_Bugku_WriteUp | 聪明的php
    题目分析翻译一下题目:传递一个参数,也许标志文件的文件名是随机的:>于是随便传个参数?a,出现php代码:<?phpinclude('./libs/Smarty.class.php');echo"passaparameterandmaybetheflagfile'sfilenameisrandom:>";$smarty=newSmarty();//new一个Smarty模......
  • 基于PHP+Mysql网上商城购物商城系统设计与实现
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书、P......
  • 全新架构!日志服务 SLS 自研免登录方案发布
    知乎:灵亦引言很多用户在使用日志服务SLS时,采用STS这种免登的方式,能够快速将日志服务的页面集成到三方的系统中。STS模式是非常经典且成熟的免登方案,它的优点非常多,例如:能够充分利用阿里云账号RAM体系、能够通用地集成支持STS模式的所有云产品、支持客户自定义访问权限......
  • 配置全局变量直接调用函数
    配置全局变量直接调用函数目的想要在项目中使用defs.utills.getFunction()的方式,直接调用我们的函数,不再使用import的方式进行导入,直接在工程化上做手脚进行自动导入解决。过程首先我们在我们的项目框架src/目录下定义一个全局的utill文件,这个我们可以分类型创建文件夹、......
  • Linux Java调用 海康sdk报 Unable to load library '/home/slife/bsmt/HCNetSDK_linux
    1、问题在Linux下java调研libPlayCtrl.so文件失败 解决方案:sudovim~/.bashrc 在该文件末尾追加:exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/slife/bsmt/HCNetSDK_linux64/刷新一下source~/.bashrcok参考链接 https://www.cnblogs.com/kikyoqiang/p/14911373.......
  • 如何调用Pytest
    如何调用Pytest在模块中运行测试pytesttest_mod.py在目录中运行测试pytesttesting/通过关键字表达式运行测试pytest-k'MyClassandnotmethod'这将运行包含与给定字符串表达式(不区分大小写)匹配的名称的测试,其中可以包括使用文件名、类名和函数名作为变量的Python......
  • python 服务自动生成 js 调用
    python服务自动生成js调用原理接管请求分发过程;为每个command维护对应的handler;利用python动态特性,获得handler的参数;利用模版生成js代码;利用**kwargs获取所有参数传递给handler;Demo以Flask为例#main.pyfromflaskimportFlask,requestfro......