聯(lián)系官方銷售客服
1835022288
028-61286886
//多數(shù)據(jù)入庫 $master_rt = \Phpcmf\Service::M()->db->table('1_news')->insertbatch($post[1]);//主表數(shù)據(jù)入庫 $id = \Phpcmf\Service::M()->db->insertID();//獲取第一條入庫ID $ids = range($id,$id+$master_rt-1);//生成入庫數(shù)據(jù)ID數(shù)組 //將ID值融入附表數(shù)據(jù)結(jié)構(gòu) foreach($ids as $key => $value){ $post[0][$key]['id'] = $value; } $schedule_rt = \Phpcmf\Service::M()->db->table('1_news_data_0')->insertbatch($post[0]);//附表數(shù)據(jù)入庫 怎么使一個入庫失敗另一個也失敗?
什么叫怎么使一個入庫失敗另一個也失敗?
回復迅??蚣軇?chuàng)始人
兩表添加不是要整事務嗎?
if $id 不為空再執(zhí)行副表啊~ 這么簡單都不會?
回復@ibennie
兩表添加不是要整事務嗎?
回復@yangyang
你懂的話就整事務咯,反正我不懂,哈哈,雖然之前學的時候有整過!
我是看你上面的代碼。做出的解釋,本身你主表和副表入庫是2條不同的 SQL,那你如果主表失敗了,就可以用來判斷是否要副表入庫
回復@ibennie
加個if判斷也可以嗎?
回復@yangyang
為什么不可以?你看官方的源碼,有多少寫事務的
回復@ibennie
回復@yangyang
他這個代碼已經(jīng)是主表入庫失敗就取消入庫的了,你看他的判斷
if($master_rt){
成功,則操作副表
} esle{
失敗,直接返回錯誤提示
}
就是用來判斷主表是否入庫成功的~
回復@ibennie
如果是附表出錯呢?
回復@yangyang
好問題,完全可以舉一反三
.
.
if($master_rt){
if($schedule_rt){
成功,提示入庫成功
} esle{
失敗,刪除主表這個ID的那條數(shù)據(jù),然后返回錯誤提示
}
} esle{
失敗,直接返回錯誤提示
}
回復@yangyang
當然,可能有更好寫法,原理是這樣的了,在你找到更好寫法之前,你就這樣寫吧