CI 框架 事务的使用问题

WBOY
リリース: 2016-06-06 20:15:30
オリジナル
1004 人が閲覧しました

情况是这样:

我需要先往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 中写个新方法

<code>public function postWithOther()</code>
ログイン後にコピー

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

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

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート