php 事务跨库,TP5 跨库事务
时间: 2023-07-06 21:19:41 浏览: 70
在 PHP 中进行跨库事务,可以使用 PDO 的事务功能。如果你使用的是 TP5 框架,可以通过 Db 类的 transaction 方法来实现跨库事务。
首先,你需要在数据库配置文件中配置多个数据库连接。然后,在进行跨库事务时,需要手动开启事务,同时将所有操作放在一个 try-catch 块中,如果其中任何一个操作失败,需要回滚所有操作,否则提交事务。
以下是一个简单的 TP5 跨库事务示例:
```php
use think\Db;
// 获取默认数据库连接
$db = Db::connect();
// 获取另一个数据库连接
$db2 = Db::connect('database2');
try {
// 开启事务
$db->startTrans();
$db2->startTrans();
// 执行数据库操作
$db->table('table1')->insert($data1);
$db2->table('table2')->insert($data2);
// 提交事务
$db->commit();
$db2->commit();
} catch (\Exception $e) {
// 回滚事务
$db->rollback();
$db2->rollback();
}
```
在上面的代码中,我们先获取了默认的数据库连接和另一个数据库连接,然后手动开启了事务。在 try 块中,我们分别对两个数据库进行了插入操作,如果其中任何一个操作失败,就会执行 catch 块中的回滚操作,否则提交事务。