Yii2如何批量添加數(shù)據(jù)
批量添加這個(gè)操作,在實(shí)際開發(fā)中經(jīng)常用得到,今天小編抽空給大家整理些有關(guān)yii2批量添加的問(wèn)題,感興趣的朋友一起看看吧。
在上篇文章給大家介紹了關(guān)于淺析Yii2 gridview實(shí)現(xiàn)批量刪除教程,當(dāng)然,著重點(diǎn)在于怎么去操作gridview了,今兒我們來(lái)好好談?wù)剏ii2如何批量添加數(shù)據(jù)?
有同學(xué)嚷嚷了,這還不簡(jiǎn)單,我foreach一循環(huán),每個(gè)循環(huán)里面直接把數(shù)據(jù)插入到數(shù)據(jù)庫(kù),簡(jiǎn)單粗暴完事!我擦嘞,哥,你要是跟我在一個(gè)公司,我覺(jué)得第二天見(jiàn)到你的概率可就不大了!
話不多說(shuō),說(shuō)多了你在罵我,我們步入正題,先看一個(gè)簡(jiǎn)單到小學(xué)生都認(rèn)識(shí)的表結(jié)構(gòu)
//test id name
我們現(xiàn)在就是要在yii2中對(duì)這張數(shù)據(jù)表批量插入10條數(shù)據(jù)
我們想要的方式肯定是下面這樣的,一條sql多么干脆直接了事
insert into test (name) values ('zhangsan'), ('lisi');
分析都分析完了,好吧,趕緊看看具體實(shí)現(xiàn)
//假如 $names = ['zhangsan', 'lisi']; $data = []; foreach ($names $k => $v) { $data[] = [$v]; } Yii::$app->db->createCommand()->batchInsert('test', ['name'], $data)->execute();
我相信很多人都是沖著AR能不能實(shí)現(xiàn)批量插入來(lái)的,理由無(wú)非就是更安全更方便操作唄。但是官方手冊(cè)貌似沒(méi)有,沒(méi)有,沒(méi)有。。。心都碎了,竟然沒(méi)有,至少我沒(méi)有找到,你找到了請(qǐng)點(diǎn)擊原文找到我并聯(lián)系我,我也si分的需要方法啊。
不過(guò)不巧的是,我找到一個(gè)跟AR相關(guān)聯(lián)的操作方法,我們共同分享參考一下看看具體怎么回事
假設(shè)有一個(gè)Post類的數(shù)組 $models,你就可以這樣操作
use yii\helpers\ArrayHelper; $rows = []; foreach ($models as $model) { if ($model->validate()) { $rows[] = $model->attributes; } } $rows = ArrayHelper::getColumn($models, 'attributes'); $postModel = new Post; Yii::$app->db->createCommand()->batchInsert(Post::tableName(), $postModel->attributes(), $rows)->execute(); //當(dāng)然啦,上面給出的是插入所有的字段,但事實(shí)往往事與愿違,也簡(jiǎn)單,稍作調(diào)整即可 $rows[] = [ 'title' => $model->title, 'content' => $model->content, ]; Yii::$app->db->createCommand()->batchInsert(Post::tableName(), ['title', 'content'], $rows)->execute();
雖然又回到了batchInsert上,不過(guò)沒(méi)關(guān)系,該驗(yàn)證的都驗(yàn)證了,安全是無(wú)須擔(dān)心的。
以上所述是小編給大家介紹的Yii2如何批量添加數(shù)據(jù)的相關(guān)知識(shí),希望對(duì)大家有所幫助!
- Yii中的relations數(shù)據(jù)關(guān)聯(lián)查詢及統(tǒng)計(jì)功能用法詳解
- Yii統(tǒng)計(jì)不同類型郵箱數(shù)量的方法
- yii gridview實(shí)現(xiàn)時(shí)間段篩選功能
- Yii 2.0在Grid中格式化時(shí)間方法示例
- yii2實(shí)現(xiàn)根據(jù)時(shí)間搜索的方法
- yii2超好用的日期組件和時(shí)間組件
- Yii2超好用的日期和時(shí)間組件(值得收藏)
- Yii2 批量插入、更新數(shù)據(jù)實(shí)例
- Yii2框架數(shù)據(jù)庫(kù)簡(jiǎn)單的增刪改查語(yǔ)法小結(jié)
- yii 框架實(shí)現(xiàn)按天,月,年,自定義時(shí)間段統(tǒng)計(jì)數(shù)據(jù)的方法分析
相關(guān)文章
PHP使用redis位圖bitMap 實(shí)現(xiàn)簽到功能
這篇文章主要介紹了PHP使用redis位圖bitMap 實(shí)現(xiàn)簽到功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10PHP去除字符串最后一個(gè)字符的三種方法實(shí)例
這篇文章主要介紹了PHP去除字符串最后一個(gè)字符的三種方法,文中給出了詳細(xì)的實(shí)例代碼,對(duì)大家的理解和學(xué)習(xí)具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03yii2局部關(guān)閉(開啟)csrf的驗(yàn)證的實(shí)例代碼
本篇文章主要介紹了yii2局部關(guān)閉(開啟)csrf的驗(yàn)證的實(shí)例代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07Yii2實(shí)現(xiàn)自定義獨(dú)立驗(yàn)證器的方法
這篇文章主要介紹了Yii2實(shí)現(xiàn)自定義獨(dú)立驗(yàn)證器的方法,結(jié)合實(shí)例形式分析了Yii2自定義獨(dú)立驗(yàn)證器的實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2017-05-05關(guān)于擴(kuò)展 Laravel 默認(rèn) Session 中間件導(dǎo)致的 Session 寫入失效問(wèn)題分析
這篇文章主要介紹了關(guān)于擴(kuò)展 Laravel 默認(rèn) Session 中間件導(dǎo)致的 Session 寫入失效問(wèn)題分析的相關(guān)資料,需要的朋友可以參考下2016-01-01laravel利用中間件做防非法登錄和權(quán)限控制示例
今天小編就為大家分享一篇laravel利用中間件做防非法登錄和權(quán)限控制示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10淺談PHP實(shí)現(xiàn)大流量下?lián)屬?gòu)方案
這篇文章主要介紹了淺談PHP實(shí)現(xiàn)大流量下?lián)屬?gòu)方案,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12