目录

Yii2批量插入数据

目录

在项目中使用到了批量插入的操作,

1
INSERT INTO table_name() (column1,column2,column3,...) VALUES (value1,value2,value3,...)(value1,value2,value3,...);

在使用yii内置的方法时

1
2
3
$connection = Yii::$app->db;
$command = $connection->createCommand($sql);
$res = $command->execunte();

如果 value 中有json_encode之后的数据 转义后的json字符串会丢失反斜杠“\”,可以使用

1
$this->getDb()->createCommand()->insert($this->tableName(), $ins)->execute();

这种方法不会丢失字符串,但是一次只能插入一条。 所以大家在批量保存的时候,如果要保存的值中有json_encode后的数据时不要使用拼接sql语句的方式去批量插入数据库,后面的那种方式虽然也是循环插入,但是在使用结束会,会关闭数据库的连接。