2 回答
TA贡献2051条经验 获得超10个赞
您是否有一些独特的数据点将记录连接在一起,例如时间戳或数据来源的 ID?如果是这样,您可以使用updateOrInsert
DB::table($tableName)
->updateOrInsert(
['remote_id' => $insert_array['remote_id'],
[
'example_field_1' => $insert_array['example_field_1'],
'example_field_2' => $insert_array['example_field_2'],
]
);
TA贡献1789条经验 获得超8个赞
以下是解决该问题的一些示例代码:
$values = array();
//set up values for binding to prevent SQL injection
foreach ($insert_array as $item) {
$values[] = '?';
}
//array values need to be in a "flat array"
$flat_values = implode(", ", $values);
//add in separators ` to column names
$columns = implode("`, `",array_keys($insert_array));
//write sql statement
$sql = "INSERT IGNORE INTO `example_table` (`$columns`) VALUES
($flat_values) ON DUPLICATE KEY UPDATE id = '$id'";
DB::insert($sql, array_values($insert_array));
}
- 2 回答
- 0 关注
- 141 浏览
添加回答
举报