У меня есть массив почтовых данных ($ data) в codeigniter, который выглядит как прикрепленное изображение.
И база данных, которая выглядит как:
id: 3
val: 37.10119357072203
—
id: 4
val: -122.06634521484374
Я хочу вставить значение массива в поле ‘val’ на основе ключа массива, соответствующего полю ‘id’ базы данных. Как мне сделать это с помощью update_batch codeigniter. Моя модель в настоящее время:
public function edit_config($data){
$this->db->update_batch('extra_config', $data,'val');
}
но я получаю ошибку:
One or more rows submitted for batch updating is missing the specified index.
Вы должны подготовить свои данные, это не нормально, чтобы не трогать их из входящего запроса.
public function edit_config($data){
$updateData = array();
foreach($data['val'] as $key=>$value) {
$updateData[] = array('id'=>$key, 'val'=>$value);
}
$this->db->update_batch('extra_config', $updateData,'id');
}
Других решений пока нет …