《PHP應(yīng)用:Yii2如何批量添加數(shù)據(jù)》要點(diǎn):
本文介紹了PHP應(yīng)用:Yii2如何批量添加數(shù)據(jù),希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
相關(guān)主題:YII框架
PHP實(shí)戰(zhàn)批量添加這個(gè)操作,在實(shí)際開(kāi)發(fā)中經(jīng)常用得到,今天小編抽空給大家整理些有關(guān)yii2批量添加的問(wèn)題,感興趣的朋友一起看看吧.
PHP實(shí)戰(zhàn)在上篇文章給大家介紹了關(guān)于淺析Yii2 gridview實(shí)現(xiàn)批量刪除教程,當(dāng)然,著重點(diǎn)在于怎么去操作gridview了,今兒我們來(lái)好好談?wù)剏ii2如何批量添加數(shù)據(jù)?
PHP實(shí)戰(zhàn)有同學(xué)嚷嚷了,這還不簡(jiǎn)單,我foreach一循環(huán),每個(gè)循環(huán)里面直接把數(shù)據(jù)插入到數(shù)據(jù)庫(kù),簡(jiǎn)單粗暴完事!我擦嘞,哥,你要是跟我在一個(gè)公司,我覺(jué)得第二天見(jiàn)到你的概率可就不大了!
PHP實(shí)戰(zhàn)話不多說(shuō),說(shuō)多了你在罵我,我們步入正題,先看一個(gè)簡(jiǎn)單到小學(xué)生都認(rèn)識(shí)的表結(jié)構(gòu)
PHP實(shí)戰(zhàn)
//test
id
name
PHP實(shí)戰(zhàn)我們現(xiàn)在就是要在yii2中對(duì)這張數(shù)據(jù)表批量插入10條數(shù)據(jù)
PHP實(shí)戰(zhàn)我們想要的方式肯定是下面這樣的,一條sql多么干脆直接了事
PHP實(shí)戰(zhàn)
insert into test (name) values ('zhangsan'), ('lisi');
PHP實(shí)戰(zhàn)分析都分析完了,好吧,趕緊看看具體實(shí)現(xiàn)
PHP實(shí)戰(zhàn)
//假如 $names = ['zhangsan', 'lisi'];
$data = [];
foreach ($names $k => $v) {
$data[] = [$v];
}
Yii::$app->db->createCommand()->batchInsert('test', ['name'], $data)->execute();
PHP實(shí)戰(zhàn)我相信很多人都是沖著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分的需要方法啊.
PHP實(shí)戰(zhàn)不過(guò)不巧的是,我找到一個(gè)跟AR相關(guān)聯(lián)的操作辦法,我們共同分享參考一下看看具體怎么回事
PHP實(shí)戰(zhàn)假設(shè)有一個(gè)Post類的數(shù)組 $models,你就可以這樣操作
PHP實(shí)戰(zhàn)
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();
PHP實(shí)戰(zhàn)雖然又回到了batchInsert上,不過(guò)沒(méi)關(guān)系,該驗(yàn)證的都驗(yàn)證了,平安是無(wú)須擔(dān)心的.
PHP實(shí)戰(zhàn)以上所述是小編給大家介紹的Yii2如何批量添加數(shù)據(jù)的相關(guān)知識(shí),希望對(duì)大家有所贊助!
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/6619.html