Yii2如何一次性保存多条数据记录

3

如何一次性保存多个数据记录,例如:

$model->title = "Negativ Balance";
$model->settingsName = "negativeBalance";
$model->settingsValue = "0";
$model->save();

$model->title = "Warnung Balance";
$model->settingsName = "warningBalance";
$model->settingsValue = "2";
$model->save();

如果我运行这段代码,只有最后一条记录被保存了,如何一次性保存所有数据?谢谢!

1
你正在处理同一条记录。创建不同的记录。 - user5201742
1个回答

2

您需要创建一个新模型,然后分配值。

$model = new YourModel();

$model->title = "Negativ Balance";
$model->settingsName = "negativeBalance";
$model->settingsValue = "0";
$model->save();

$model = new YourModel();

$model->title = "Warnung Balance";
$model->settingsName = "warningBalance";
$model->settingsValue = "2";
$model->save();

但如果您需要多个插入,您也可以查看 yii\db\CommandbatchInsert() 方法。更多信息请参见http://www.yiiframework.com/doc-2.0/yii-db-command.html#batchInsert%28%29-detail


这是错误的方式 - Kshitiz
@Kshitiz 为什么? - ScaisEdge
有一种叫做批量插入的方法可以进行多条记录插入。不需要多次调用同一个类。如果您有1000条记录,那么您的系统有多慢呢?PHP比其他编程语言慢10倍。如果有1000个用户每人插入1000条记录,那该怎么办呢?同时,您也可以了解MySQL事务处理。 - Kshitiz
答案严格与OP提供的示例相关,因此我的答案是正确的。 "批量插入"基于yii\db\CommandbatchInsert()方法,请参见http://www.yiiframework.com/doc-2.0/yii-db-command.html#batchInsert%28%29-detail...无论如何,根据您的建议,我在我的答案中添加了一些关于这种技术的信息。谢谢。 - ScaisEdge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接