在 for 循环中插入多个记录


Inserting multiple records in for loop

我正在尝试在我的数据库中存储多条记录,但遇到错误。目前我有这个:

$array=array('key'=>'value');
for($i = 0; $i < $something; $i++){
    array_add($array,'key','value')
}
DB::table('table')->insert($array);

每当我var_dump($array);它都不会显示我添加到数组中的array_add的值。

做错了什么,我应该如何这样插入?

您当前在for循环中所做的是一次又一次地设置key => value。相反,您希望将带有key => value的数组添加到包含所有行的数组中:

$rows = array(
    array('key' => 'value'),
    array('key' => 'value2'),
    // and so on...
);
for($i = 0; $i < $something; $i++){
    $rows[] = array('key' => 'value');
}
DB::table('table')->insert($rows);

这是这个问题的答案。希望这有帮助。https://laracasts.com/discuss/channels/general-discussion/update-multiple-rows-in-a-foreach-loop?page=1#reply-27859

与其说是答案,不如说是评论... 完全未经测试的代码...

鉴于我对这个问题的解释 - 我认为代码应该看起来像这样......

如果要添加多个记录,则需要一个包含"newRecord"的额外循环。

如果我误解了这个问题,请随时发表评论。

$allRecordsToInsert = array();
$newRecord = array();
for($i = 0; $i < $something; $i++) { // add columns to 'newRecord'
    array_add($newRecord, $curColKey, $curColValue);
}
// append new record to list of records to be inserted
$allRecordsToInsert[] = $newRecord;
DB::table('table')->insert($allRecordsToInsert);