美文网首页
tp6进行事务操作

tp6进行事务操作

作者: php转go | 来源:发表于2021-05-26 17:26 被阅读0次

使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎。

最简单的方式是使用 transaction 方法操作数据库事务,当闭包中的代码发生异常会自动回滚,例如:

Db::transaction(function () {
    Db::table('think_user')->find(1);
    Db::table('think_user')->delete(1);
});

也可以手动控制事务,例如:

// 启动事务
Db::startTrans();
try {
    Db::table('think_user')->find(1);
    Db::table('think_user')->delete(1);
    // 提交事务
    Db::commit();
} catch (\Exception $e) {
    // 回滚事务
    Db::rollback();
}

注意在事务操作的时候,确保你的数据库连接使用的是同一个。

可以支持MySQL的XA事务用于实现全局(分布式)事务,你可以使用:

Db::transactionXa(function () {
    Db::connect('db1')->table('think_user')->delete(1);
    Db::connect('db2')->table('think_user')->delete(1);
}, [Db::connect('db1'),Db::connect('db2')]);

要确保你的数据表引擎为InnoDB,并且开启XA事务支持。

相关文章

  • tp6进行事务操作

    使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 Inn...

  • Tp6事务

    Tp6事务 开启事务之后 trycatch 添加订单信息并批量上传产品sku信息等

  • 3.7 Beego事务处理

    事务处理ORM 可以简单的进行事务操作

  • 认识事务管理

    什么是事务? 事务就是以可控的方式对数据资源进行访问的一组操作。 原子性(atomicity):事务所包含的操作是...

  • 【黑马程序员济南】分布式事务

    【黑马程序员济南】分布式事务 分布式事务:当我们进行操作的时候不是操作相同的数据库,那么事务的连接也就不一...

  • 事务隔离级别和各个级别的并发访问问题

    更新丢失(MySQL所有事务隔离级别在数据库层面上均可避免)事务A对数据进行操作时,事务B也在对同一数据更新操作并...

  • MongoDB 4.0 事务实现解析

    MongoDB 4.0 引入的事务功能,支持多文档ACID特性,例如使用mongo shell进行事务操作 支持 ...

  • Hibernate系列之(2)丢失更新解决

    丢失更新及其解决办法 丢失更新:多个事务对同一条记录进行了操作,后提交的事务将先提交的事务操作覆盖了。 解决丢失更...

  • MySql多机优化---读写分离流程分析

    1、为什么需要读写分离? 对数据库进行增删改操作时,需要对这些操作进行事务管理,因此当这些操作和查询操作混合使用,...

  • iOS 使用FMDB事务批量更新数据库

    当谈到“事务”时,我想到了sqlite本身是支持事务操作的,FMDB作为sqlite的上层封装也对事务进行了支持,...

网友评论

      本文标题:tp6进行事务操作

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