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

    if($master_rt){


    if($schedule_rt){

    成功,提示入库成功

    } esle{

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

    }


    } esle{

    失败,直接返回错误提示

    }

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