错误:未知列'数组'在'where子句'


Error: Unknown column 'Array' in 'where clause'

我想用foreach更新数据库表中的几行,但给出以下错误:

这是我的php代码:
$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列
UPDATE hotel_units SET 0 = ArrayWHERE id = 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]));
};