事务操作

您正在阅读旧版文档,新版文档已迁移至 [https://document.pescms.com]

目录

PESCMS的事务操作为全局影响的,即不论你是在控制器,模型还是扩展库等任意地方,只要是基于PESCMS的数据库连接方式,那么它的事务影响都是是全局的。不会存在事务异常的问题。

开启事务

要开启事务非常简单,只需在SQL语句执行之前声明如下代码则可:

$this->db()->transaction();

开启事务后,除数据库的设置了事务自动提交,否则在全局影响下,不手动提交的话,内容是不会有任何变化的。

此外,ALTER操作会自动提交事务。因此在事务范围内,请避免ALTER操作。

回滚事务

当操作数据库操作失败时,需要回滚,那么执行如下代码:

$this->db()->rollBack();

注:在任何地方调用回滚方法都不会报任何错误。PESCMS会自动判别调用rollBack()方法是否处于事务状态下。

为什么这样做呢?实际开发过程,某些方法可能是与事务挂钩一起使用的。当其他方法调用时,也需要声明事务,这样一来就显得过于繁琐了。因此PESCMS作了事务检测判断。

提交事务

程序对数据库操作执行完毕且没有任何错误时,需要对事务进行提交,那么执行如下代码:

$this->db()->commit()


PESCMS DOC 文档系统
© Copyright 2015-2024. by the PESCMS DOC
耗时0.0209秒