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;
    }
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
PHP
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
本文介绍了解决PHP常见问题的步骤,包括定位和创建`php.ini`文件,以及解决`mb_strlen()`函数未定义和DLL模块加载错误的具体方法。
php常见问题,php.ini文件不存在或者找不到,mb_strlen()函数未定义系列问题,dll模块找不到的解决
|
3天前
|
关系型数据库 MySQL 数据库连接
PHP内置函数
PHP内置函数
12 5
|
1月前
|
PyTorch 算法框架/工具
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
本文介绍了PyTorch中的F.softmax()和F.log_softmax()函数的语法、参数和使用示例,解释了它们在进行归一化处理时的作用和区别。
356 1
Pytorch学习笔记(七):F.softmax()和F.log_softmax函数详解
|
1月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1619 14
|
2月前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
1月前
|
Unix PHP 数据库
PHP日期和时间Date()函数获取当前时间
通过灵活运用 `date()`函数及其丰富的格式选项,PHP开发者可以轻松地在应用程序中处理和展示日期及时间信息。无论是需要精确到秒的完整时间戳,还是仅仅展示日期或时间的某一部分,`date()`函数都能胜任。理解并熟练应用这些格式化技巧,对于提升代码的可读性和维护性至关重要。
38 1
|
2月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
44 2
|
2月前
|
缓存 监控 算法
分析慢日志文件来优化 PHP 脚本的性能
分析慢日志文件来优化 PHP 脚本的性能
|
2月前
|
XML SQL PHP
php学习笔记-php字符串及字符串常用函数总结-day04
本文总结了PHP中字符串的三种定义方式和常用字符串处理函数,包括字符串的修剪、转换、长度计算、子串操作、比较、连接、分割及替换等操作。
|
2月前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。