Yii 2.0 批量插入数据 [ 2.0 版本 ]
第一种方法
$model = new User();
foreach($data as $attributes)
{
$_model = clone $model;
$_model->setAttributes($attributes);
$_model->save();
}
第二种方法
$model = new User();
foreach($data as $attributes)
{
$model->isNewRecord = true;
$model->setAttributes($attributes);
$model->save() && $model->id=0;
}
大裤衩子 北京
注册时间:2013-02-17
最后登录:2023-12-29
在线时长:91小时52分
最后登录:2023-12-29
在线时长:91小时52分
- 粉丝92
- 金钱8528
- 威望120
- 积分10638
共 19 条评论
真的可以批量插入吗 我还没试过
阔以的 不然我这不是骗人嘛...
@大裤衩子 这个应该不是批量插入吧 是用foreach循环一条条的插入的吧
很多教程都是祸害新手的,也挂在网上,循环插入数据量大Mysql直接崩,基本是禁用的,这里却用来做教程,毒奶啊毒奶
@日上柳梢头 毒奶^_^
这个批量插入只能叫多次插入
$sql = $queryBuilder->batchInsert('user', ['name', 'age'], [ ['Tom', 30], ['Jane', 20], ['Linda', 25], ]);
这是循环插入吧, 貌似跟理解的批插入有点出入~
最后面为什么有一个
$model->id=0
第二种设置id为0了,这样不行吧
foreach($data as $attributes) { $model = new User(); $model ->setAttributes($attributes); $model ->save(); }
这样不行么? 和 第一种
$_model = clone $model;
有区别么112212
在视图中,如何搞啊??有没有这方面的例子学习一下?
如何使用批量插入的方法啊?
yii2 批量插入,总是失败!!!哈
6666,赞一个!!!
$userkey=['login','password','nicename','email','create_time'];//测试数据键 $uservale=array( '0'=>array('admin2','2b571c42c2d79deb9872aeb0befc0124','admin','1111@qq.com','2017-07-21 15:47:07'), '1'=>array('admin1','2b571c42c2d79deb9872aeb0befc0124','admin','2222@qq.com','2017-07-21 15:47:07'), '2'=>array('admin55','2b571c42c2d79deb9872aeb0befc0124','admin','3333@qq.com','2017-07-21 15:47:07'), '3'=>array('admin66','2b571c42c2d79deb9872aeb0befc0124','admin','4444@qq.com','2017-07-21 15:47:07'), );//测试数据值 $res= \Yii::$app->db->createCommand()->batchInsert(Users::tableName(), $userkey, $uservale)->execute();//执行批量添加
对,这才是批量插入!!!
/**
user
(name
,age
) VALUES ('Tom', 30), ('Jane', 20), ('Linda', 25)*/
Yii::$app->db->createCommand()->batchInsert('user', ['name', 'age'], [
['Tom', 30],
['Jane', 20],
['Linda', 25],
])->execute();
很多教程都是祸害新手的,也挂在网上,循环插入数据量大Mysql直接崩,基本是禁用的,这里却用来做教程,毒奶啊毒奶
这也叫批量插入......
这是毛线的批量插入...
误人子弟哈哈
Yii::$app->db->createCommand()->batchInsert
这个和上面人家的一样。你们太纠结于表面里,顶层不还是循环插入的吗。
一样的道理。
这种东西挂到现在都不删掉,不嫌丢人么,还有一个说和上面一样的,batchInsert是在那里组合基础sql 只写入一次,你那个foreach循环save 是在疯狂执行sql写入