美文网首页
thinkphp5.1 事务操作 2021-10-29

thinkphp5.1 事务操作 2021-10-29

作者: 阿然学编程 | 来源:发表于2021-10-28 20:59 被阅读0次
    • MySQL使用事务处理需要使用 InnoDB 引擎。
    • database配置

    return [
        // 数据库类型
        'type'            => 'mysql',
        // 服务器地址
        'hostname'        => '127.0.0.1',
        // 数据库名
        'database'        => 'www_test_cn',
        // 用户名
        'username'        => 'www_test_cn',
        // 密码
        'password'        => '123456',
        // 端口
        'hostport'        => 3306,
        // 连接dsn
        'dsn'             => '',
        // 数据库连接参数
        'params'          => [],
        // 数据库编码默认采用utf8
        'charset'         => 'utf8',
        // 数据库表前缀
        'prefix'          => '',
        // 数据库调试模式
        'debug'           => true,
        // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
        'deploy'          => 0,
        // 数据库读写是否分离 主从式有效
        'rw_separate'     => false,
        // 读写分离后 主服务器数量
        'master_num'      => 1,
        // 指定从服务器序号
        'slave_no'        => '',
        // 自动读取主库数据
        'read_master'     => false,
        // 是否严格检查字段是否存在
        'fields_strict'   => true,
        // 数据集返回类型
        'resultset_type'  => 'array',
        // 自动写入时间戳字段
        'auto_timestamp'  => false,
        // 时间字段取出后的默认时间格式
        'datetime_format' => 'Y-m-d H:i:s',
        // 是否需要进行SQL性能分析
        'sql_explain'     => false,
        // Builder类
        'builder'         => '',
        // Query类
        'query'           => '\\think\\db\\Query',
        // 是否需要断线重连
        'break_reconnect' => false,
        // 断线标识字符串
        'break_match_str' => [],
        //数据库配置1
        'db_config1' => [
            // 数据库类型
            'type'        => 'mysql',
            // 服务器地址
            'hostname'    => '121.12.12.12',
            // 数据库名
            'database'    => 'testwhr',
            // 数据库用户名
            'username'    => 'testwhr',
            // 数据库密码
            'password'    => '123456',
            // 数据库编码默认采用utf8
            'charset'     => 'utf8',
            // 端口
            'hostport'    => 3306,
            // 数据库表前缀
            'prefix'      => '',
        ],
    ];
    
        public function test()
        {
            $data = [
                'name' => time()
            ];
            
            DB::startTrans();
            try {
                $res =  Db::table('user')->insert($data);
                $res2 = Db::connect('db_config1')->table('user')->insert($data);
                // 提交事务
                Db::commit();
            } catch (\Exception $e) {
                // 回滚事务
                Db::rollback();
                return $e->getMessage();
            }
            if ($res && $res2){
                return '插入成功';
            }
            return '插入失败';
        }
    
    • 如果报数据库连接超时的错误,请把当前主数据库服务器IP 在数据库配置1(db_config1)服务器的安全组内开放白名单

    相关文章

      网友评论

          本文标题:thinkphp5.1 事务操作 2021-10-29

          本文链接:https://www.haomeiwen.com/subject/vplwaltx.html