Press "Enter" to skip to content

ThinkPHP 框架实现事务操作的方法

ThinkPHP提供了单数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法:

  • TP3.2
// 启动事务
M()->startTrans();

// 提交事务
M()->commit();

// 事务回滚
M()->rollback();
  • TP5.1

最简单的方式是使用 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();
}

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

参考:ThinkPHP3.2.3完全开发手册 ThinkPHP5.1完全开发手册

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用 * 标注