我想用foreach
更新数据库表中的几行,但给出以下错误:
$id_units = $this->input->post('id_units');
$name_un = $this->input->post('name_units');
$price_un = $this->input->post('price_units');
$description_un = $this->input->post('explanation_units');
$ex_un = $this->input->post('addition_units');
$service_un = $this->input->post('checkbox_units');
$data2 = array();
foreach ($name_un as $idx => $name) {
$data2 = array(
'relation' => $id_residence,
'name_un' => $name_un[$idx],
'price_un' => $price_un[$idx],
'description_un' => $description_un[$idx],
'ex_un' => $ex_un[$idx],
'service_un' => json_encode($service_un[$idx]), // This Is Line Number: 212
);
$this->db->update('hotel_units', $data2, array('id' => $id_units[$idx]));
};
上面的代码有这个错误:
A Database Error Occurred
Error Number: 1054
Unknown列
UPDATEhotel_units
SET0
= ArrayWHEREid
= Array
Filename:D:'xampp'htdocs'system'database'DB_driver.php
行号:330
更新:
我有新的错误:
遇到PHP错误
严重性:Notice
消息:
文件名:residence.php
行号:212遇到PHP错误
严重性:Notice
消息:未定义偏移量:2
Filename: residency .php
Line编号:212遇到PHP错误
Notice
Message: Undefined offset: 3
Filename:php
行号:212
'service_un' =>...
are复选框。参见上面php代码中的第212行
看起来$id_units
是一个值数组。
您可以尝试使用这段代码,但它假设与其他输入字段一样,id也是一个数组,并且具有与其他输入字段相同的索引。你没有提供你的html表单,所以我只是猜测....无论如何,$this->db->where()的最后一个参数需要是单个值,即使您将其写成数组(但只有一个元素)。
$id_units = $this->input->post('id_units');
$name_un = $this->input->post('name_units');
$price_un = $this->input->post('price_units');
$description_un = $this->input->post('explanation_units');
$ex_un = $this->input->post('addition_units');
$service_un = $this->input->post('checkbox_units');
$data2 = array();
foreach ($name_un as $idx => $name) {
$data2 = array(
'relation' => $id_residence, // Or is it $id_residence[$idx] ?
'name_un' => $name_un[$idx],
'price_un' => $price_un[$idx],
'description_un' => $description_un[$idx],
'ex_un' => $ex_un[$idx],
'service_un' => json_encode($service_un[$idx]),
);
$this->db->update('hotel_units', $data2, array('id' => $id_units[$idx]));
};