业务经理

微信扫描以上二维码

028-61286886

技术咨询

附表数据入库怎么使一个入库失败另一个也失败

迅睿框架 更新 2019-11-04 16:36:59 yangyang
//多数据入库
$master_rt = \Phpcmf\Service::M()->db->table('1_news')->insertbatch($post[1]);//主表数据入库
$id = \Phpcmf\Service::M()->db->insertID();//获取第一条入库ID
$ids = range($id,$id+$master_rt-1);//生成入库数据ID数组
//将ID值融入附表数据结构
foreach($ids as $key => $value){
    $post[0][$key]['id'] = $value;
}
$schedule_rt = \Phpcmf\Service::M()->db->table('1_news_data_0')->insertbatch($post[0]);//附表数据入库

怎么使一个入库失败另一个也失败?

方案

  • 迅睿框架创始人 #1 · 2019-11-04 16:05:31
    什么叫怎么使一个入库失败另一个也失败?
  • ibennie #2 · 2019-11-04 16:07:25
    if $id 不为空再执行副表啊~ 这么简单都不会?
  • yangyang #3 · 2019-11-04 16:08:51
    回复迅睿框架创始人两表添加不是要整事务吗?
  • yangyang #4 · 2019-11-04 16:09:45
    ibennie
    两表添加不是要整事务吗?
  • ibennie #5 · 2019-11-04 16:11:11
    yangyang你懂的话就整事务咯,反正我不懂,哈哈,虽然之前学的时候有整过!我是看你上面的代码。做出的解释,本身你主表和副表入库是2条不同的 SQL,那你如果主表失败了,就可以用来判断是否要副表入库
  • yangyang #6 · 2019-11-04 16:17:14
    ibennie加个if判断也可以吗?
  • ibennie #7 · 2019-11-04 16:20:10
    yangyang为什么不可以?你看官方的源码,有多少写事务的
  • yangyang #8 · 2019-11-04 16:22:53
    ibennie
    image.png
  • ibennie #9 · 2019-11-04 16:25:38
    yangyang他这个代码已经是主表入库失败就取消入库的了,你看他的判断
    image.png
  • ibennie #10 · 2019-11-04 16:28:43
    if($master_rt){成功,则操作副表} esle{失败,直接返回错误提示} 就是用来判断主表是否入库成功的~
  • yangyang #11 · 2019-11-04 16:32:16
    ibennie如果是附表出错呢?
  • ibennie #12 · 2019-11-04 16:34:52
    yangyang好问题,完全可以举一反三..

    if($master_rt){


    if($schedule_rt){

    成功,提示入库成功

    } esle{

    失败,删除主表这个ID的那条数据,然后返回错误提示

    }


    } esle{

    失败,直接返回错误提示

    }

  • ibennie #13 · 2019-11-04 16:35:49
    满意答案
    yangyang当然,可能有更好写法,原理是这样的了,在你找到更好写法之前,你就这样写吧
  • yangyang #14 · 2019-11-04 16:36:59
    @ibennie:恩,谢谢,我之前就没想到过还可以再删主表

迅睿系统漏洞

GEO系统
GEO系统(2026-09-15)
运营客户端,防止误触阴影处关闭对话框
独立站群系统
独立站群系统(2026-09-14)
子站独立部署时修复同步附件失败问题
在线客服
在线客服(2026-09-13)
修复删除会话报错问题 删除会话时联动删除聊天图片
在线考试竞赛系统
在线考试竞赛系统(2026-09-12)
增加投票功能 考试功能拓展 注意:更新后需要执行系统更新,更新数...
网上信箱
网上信箱(2026-09-12)
修复新版本兼容问题
GeoSeo收录宝
GeoSeo收录宝(2026-09-12)
1 优化Update.php文件,解决版本在线升级不完整问题 2 ...
GeoSeo工具箱
GeoSeo工具箱(2026-09-11)
修正历史记录推送
微信系统
微信系统(2026-09-11)
增加数据统计总览界面 账号管理增加服务和公众号的区别 菜单管理支持更...
答题系统
答题系统(2026-09-11)
一站式在线答题系统,支持真题考试、题库练习和错题本,适合培训、考证、...
阿里云滑动验证码
阿里云滑动验证码(2026-09-10)
采用阿里云验证码替换迅睿系统自带的图片验证码和滑动验证码。后台设置方...