您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關使用Yii2框架怎么實現一個批量添加數據功能,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
表結構
//test id name
我們現在就是要在yii2中對這張數據表批量插入10條數據
我們想要的方式肯定是下面這樣的,一條sql多么干脆直接了事
insert into test (name) values ('zhangsan'), ('lisi');
分析都分析完了,好吧,趕緊看看具體實現
//假如 $names = ['zhangsan', 'lisi']; $data = []; foreach ($names $k => $v) { $data[] = [$v]; } Yii::$app->db->createCommand()->batchInsert('test', ['name'], $data)->execute();
我相信很多人都是沖著AR能不能實現批量插入來的,理由無非就是更安全更方便操作唄。但是官方手冊貌似沒有,沒有,沒有。。。心都碎了,竟然沒有,至少我沒有找到,你找到了請點擊原文找到我并聯系我,我也si分的需要方法啊。
不過不巧的是,我找到一個跟AR相關聯的操作方法,我們共同分享參考一下看看具體怎么回事
假設有一個Post類的數組 $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();
上述就是小編為大家分享的使用Yii2框架怎么實現一個批量添加數據功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。