Hyperf 框架跨库事务

hyperf/database 衍生于 illuminate/database,所以Hyperf 下的跨库事务操作也是是基于连接的。当你需要回滚不是在default连接上的表操作,使用Db::rollBack()是不生效的,需要指定连接。

示例代码

<?php

use Hyperf\DbConnection\Db;

class test
{
    public function testFunc()
    {
        Db::beginTransaction();
        Db::connection('test')->beginTransaction();
        try {

            $data['name'] = '123';
            // 默认(default)数据库链接表修改
            Db::table('default')->update($data);
            // test数据库链接表修改
            Db::connection('test')->table('test')->update($data);

            Db::commit();
            Db::connection('test')->commit();
        } catch (\Throwable $ex) {
            Db::rollBack();
            Db::connection('test')->rollBack();
        }
    }
}

参考连接

laravel跨库事务

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章