当前位置:Gxlcms > PHP教程 > CI框架事务的使用问题

CI框架事务的使用问题

时间:2021-07-01 10:21:17 帮助过:31人阅读

情况是这样:

我需要先往Post 表中插入文章的基本信息,成功后返回 post_id。然后需要做一些数据处理,再用 post_id 和对应的数据插入到 Postmeta 表。 但时候在数据处理的过程中,有时候会失败。导致 Post 的数据插入成功了,Postmeta 表的数据插入失败。 这就是一次失败的插入。会产生很多冗余的 Post 数据。

我希望的是 postmeta 数据插入失败,前面的 post 数据也应该『抹除』,就像事务的回退。

事务是在 CI 的 model 中运行,但是据我了解到,model 主要是用来数据的增删改查。数据处理(逻辑处理)主要都在 controller中进行。

所以我不知道,我这个情况,到底应该如何处理?

谢谢大家。

回复内容:

情况是这样:

我需要先往Post 表中插入文章的基本信息,成功后返回 post_id。然后需要做一些数据处理,再用 post_id 和对应的数据插入到 Postmeta 表。 但时候在数据处理的过程中,有时候会失败。导致 Post 的数据插入成功了,Postmeta 表的数据插入失败。 这就是一次失败的插入。会产生很多冗余的 Post 数据。

我希望的是 postmeta 数据插入失败,前面的 post 数据也应该『抹除』,就像事务的回退。

事务是在 CI 的 model 中运行,但是据我了解到,model 主要是用来数据的增删改查。数据处理(逻辑处理)主要都在 controller中进行。

所以我不知道,我这个情况,到底应该如何处理?

谢谢大家。

  • 直接在 Model 中写个新方法

public function postWithOther()

Controller 才不需要关心里面是否有事务。

  • 关于 MC 两层的分工,楼主还需另外好好学习。

按我的理解,model实际上应该是一个业务逻辑层,你说的这个场景,完全可以在model中写一个方法(同时包括事务的处理)。
关于CI事务的使用参考文档:http://codeigniter.org.cn/user_guide/database/transactions.html

人气教程排行