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