TP框架里的事务问题

m0_37852435 2017-04-14 10:31:05
今天tp框架用事务时发现,在controller里开启了事务,但是在Model的_after_insert()里提交/回滚事务是不行的,我现在需要在controller里添加数据,然后在Model的_after_insert()里更新另外一个表的数据,还要保证都要完成,这个怎么用事务啊
...全文
441 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2017-04-16
  • 打赏
  • 举报
回复
controller里需要插入数据,在回调Model里也要插入数据 两个不同的地方当然不能使用事务了。 你可以把controller插入数据的操作,也放到model里面执行。 然后创建一个方法把controller里需要插入数据,在回调Model里也要插入数据 的代码都包含,在这个方法内实现事务才可以。 例如 function doing(){ // 开启事务 a(); b(); // commit }
xuzuning 2017-04-14
  • 打赏
  • 举报
回复
不知道你是怎么写的 但 插入多表 要在一个事务中完成,这样才能达到失败后回滚的目的
imarshal 2017-04-14
  • 打赏
  • 举报
回复
这不是基本的分布式事务啊
xuzuning 2017-04-14
  • 打赏
  • 举报
回复
按你的描述,插入是在两个地方进行的,这显然是不能使用事务的
m0_37852435 2017-04-14
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
当然不可能啦
那这种情况的话怎么解决呢,有什么办法吗
xuzuning 2017-04-14
  • 打赏
  • 举报
回复
当然不可能啦
m0_37852435 2017-04-14
  • 打赏
  • 举报
回复
我现在就是在tp框架的controller里需要插入数据,在回调Model里也要插入数据,现在想用事务来保证这俩条数据都成功插入,但是我不知道怎么去用事务,因为好像tp框架里的事务不能跨controller和model
引用 1 楼 xuzuning 的回复:
不知道你是怎么写的 但 插入多表 要在一个事务中完成,这样才能达到失败后回滚的目的

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧