yii2批量插入数据

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

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

在使用yii内置的方法去

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

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

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

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