最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Yii2如何批量添加數(shù)據(jù)

 更新時間:2016年05月17日 09:01:54   作者:白狼  
批量添加這個操作,在實際開發(fā)中經(jīng)常用得到,今天小編抽空給大家整理些有關yii2批量添加的問題,感興趣的朋友一起看看吧

批量添加這個操作,在實際開發(fā)中經(jīng)常用得到,今天小編抽空給大家整理些有關yii2批量添加的問題,感興趣的朋友一起看看吧。

在上篇文章給大家介紹了關于淺析Yii2 gridview實現(xiàn)批量刪除教程,當然,著重點在于怎么去操作gridview了,今兒我們來好好談談yii2如何批量添加數(shù)據(jù)?

有同學嚷嚷了,這還不簡單,我foreach一循環(huán),每個循環(huán)里面直接把數(shù)據(jù)插入到數(shù)據(jù)庫,簡單粗暴完事!我擦嘞,哥,你要是跟我在一個公司,我覺得第二天見到你的概率可就不大了!

話不多說,說多了你在罵我,我們步入正題,先看一個簡單到小學生都認識的表結構

//test 
id 
name

我們現(xiàn)在就是要在yii2中對這張數(shù)據(jù)表批量插入10條數(shù)據(jù)

我們想要的方式肯定是下面這樣的,一條sql多么干脆直接了事

insert into test (name) values ('zhangsan'), ('lisi');

分析都分析完了,好吧,趕緊看看具體實現(xiàn)

//假如 $names = ['zhangsan', 'lisi']; 
$data = []; 
foreach ($names $k => $v) { 
$data[] = [$v]; 
} 
Yii::$app->db->createCommand()->batchInsert('test', ['name'], $data)->execute();

我相信很多人都是沖著AR能不能實現(xiàn)批量插入來的,理由無非就是更安全更方便操作唄。但是官方手冊貌似沒有,沒有,沒有。。。心都碎了,竟然沒有,至少我沒有找到,你找到了請點擊原文找到我并聯(lián)系我,我也si分的需要方法啊。

不過不巧的是,我找到一個跟AR相關聯(lián)的操作方法,我們共同分享參考一下看看具體怎么回事

假設有一個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(); 
//當然啦,上面給出的是插入所有的字段,但事實往往事與愿違,也簡單,稍作調整即可 
$rows[] = [ 
'title' => $model->title, 
'content' => $model->content, 
]; 
Yii::$app->db->createCommand()->batchInsert(Post::tableName(), ['title', 'content'], $rows)->execute();

雖然又回到了batchInsert上,不過沒關系,該驗證的都驗證了,安全是無須擔心的。

以上所述是小編給大家介紹的Yii2如何批量添加數(shù)據(jù)的相關知識,希望對大家有所幫助!

相關文章

最新評論

宁明县| 汕尾市| 延吉市| 嘉禾县| 马鞍山市| 丽江市| 兰西县| 仙居县| 洛阳市| 绥宁县| 潮安县| 安陆市| 上饶市| 海安县| 财经| 昌乐县| 金溪县| 永嘉县| 历史| 塘沽区| 固镇县| 通渭县| 思茅市| 唐河县| 襄汾县| 云阳县| 仪征市| 鲁甸县| 云霄县| 滦平县| 武隆县| 务川| 奉新县| 新竹市| 辰溪县| 闵行区| 甘肃省| 呼伦贝尔市| 奉节县| 精河县| 武义县|