在使用yii2開(kāi)發(fā)項(xiàng)目時(shí),有時(shí)候會(huì)遇到這樣的情況:
向后臺(tái)發(fā)送多條數(shù)據(jù),其中一些數(shù)據(jù)已經(jīng)存在記錄,只需要對(duì)其部分字段的值進(jìn)行修改;而另一部分的數(shù)據(jù)則需要新添加進(jìn)去.
這就需要對(duì)添加的數(shù)據(jù)進(jìn)行判斷,其中一些執(zhí)行update,剩下的執(zhí)行insert
代碼如下,不對(duì)的地方請(qǐng)指教:
//批量更新,并將需要批量插入的數(shù)據(jù)放入數(shù)組中 foreach($goods as $k => $v) { if(yourModel::updateAllCounters( ['goods_num' => $v], ['goods_id' => $k,'user_id' => $id] )) { continue;//如果已經(jīng)更新,則跳過(guò)此次循環(huán),到下一次 } $data[] = [ 'user_id' => $id, 'goods_id' => $k, 'goods_num' => $v, 'created_time' => $time, ] } //再執(zhí)行批量插入 if (isset($data)) { Yii::$app->db->createCommand() ->batchInsert(yourModel::tableName(),['user_id','goods_id','goods_num','created_time'], $data) ->execute(); }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持。
【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。