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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: php事务删除加调用日志函数
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;
    }
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
人工智能 JSON 安全
无需复杂正则:SLS 新脱敏函数让隐私保护更简单高效
SLS 推出 mask 脱敏函数,支持 keyword 和 buildin 模式,简化敏感数据识别与处理,提升脱敏效率与性能,适用于结构化及非结构化日志。
169 25
|
2月前
|
PHP 开发者
PHP计算过去一定时间段内日期范围函数
这个函数为开发者提供了一个快速而简单的方法来获取与当前日期相关的过去时间范围,代码简洁易懂,可复用性高。
94 15
|
4月前
|
PHP 开发者 索引
探究PHP中常见数组操作函数
在编码实践中,合理利用这些数组操作函数可以简化编程工作,提升代码的效率和可读性。为达到最佳实践,开发者应该通过阅读官方文档来深入理解每个函数的工作原理以及如何在不同的场景下运用它们。
155 8
|
8月前
|
存储 监控 算法
基于 PHP 语言的滑动窗口频率统计算法在公司局域网监控电脑日志分析中的应用研究
在当代企业网络架构中,公司局域网监控电脑系统需实时处理海量终端设备产生的连接日志。每台设备平均每分钟生成 3 至 5 条网络请求记录,这对监控系统的数据处理能力提出了极高要求。传统关系型数据库在应对这种高频写入场景时,性能往往难以令人满意。故而,引入特定的内存数据结构与优化算法成为必然选择。
202 3
|
8月前
|
存储 JSON Go
PHP 日志系统的最佳搭档:一个 Go 写的远程日志收集服务
为了不再 SSH 上去翻日志,我写了个 Go 小脚本,用来接收远程日志。PHP 负责记录日志,Go 负责存储和展示,按天存储、支持 API 访问、可远程管理,终于能第一时间知道项目炸了。
148 10
|
10月前
|
SQL 关系型数据库 MySQL
MySQL事务日志-Undo Log工作原理分析
事务的持久性是交由Redo Log来保证,原子性则是交由Undo Log来保证。如果事务中的SQL执行到一半出现错误,需要把前面已经执行过的SQL撤销以达到原子性的目的,这个过程也叫做"回滚",所以Undo Log也叫回滚日志。
463 7
MySQL事务日志-Undo Log工作原理分析
|
8月前
|
JSON API Go
基于责任链与策略模式的轻量级PHP日志库设计
项目日志乱成一团,bug 时好时坏,服务器问题难以复现?我写了个 PHP 日志系统,第一时间发现问题,避免跑路。实现了责任链模式+策略模式,让日志存储更灵活,支持多种输出方式。
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
2253 14
MySQL事务日志-Redo Log工作原理分析
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
1251 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
12月前
|
关系型数据库 MySQL 数据库连接
PHP内置函数
PHP内置函数
137 5