Я пытаюсь обновить массив в Codeigniter, но не могу понять синтаксис.
Ошибка: Произошла ошибка PHP Серьезность: уведомление
Сообщение: преобразование массива в строку
Имя файла: база данных / DB_driver.php
Номер строки: 1525
public function allowregis()
{
$data = $this->input->post();
for($i= 0;$i < count($data["regis_id"]);$i++)
{
$allow[] = array('regis_id' => $data['regis_id'][$i],
'regis_status' => $data['regis_status'][$i],
'regis_approveresult' => $data['regis_approveresult'][$i],
);
}
$this->db->update('register',$allow,'regis_id');
redirect('/register/cheackactivityallow/');
}






Как и говорится в ошибке, вы пытаетесь обновить поле значением массива ($allow), которое ожидает, что ему будет передана строка.
Добавьте запрос на обновление внутри цикла for.
public function allowregis()
{
$data = $this->input->post();
$allow = array();
for($i= 0;$i < count($data["regis_id"]);$i++)
{
$allow[$i] = array('regis_id' => $data['regis_id'][$i],
'regis_status' => $data['regis_status'][$i],
'regis_approveresult' => $data['regis_approveresult'][$i],
);
$this->db->update('register',$allow[$i]);
}
redirect('/register/cheackactivityallow/');
}
Вы можете использовать функцию update_batch codeigniter для достижения желаемого результата, поскольку вы отправляете многомерный массив в функцию обновления, которая будет выполнена через ошибку.