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();
}
}
}
本文介绍了Hyperf框架下的跨库事务操作,由于其基于illuminate/database,所以跨库事务需要基于特定的数据库连接进行。内容包含示例代码和相关参考链接,帮助开发者理解如何在Hyperf中正确处理跨库事务。
1460

被折叠的 条评论
为什么被折叠?



