codeigniter中的多个批量更新不起作用

Posted

技术标签:

【中文标题】codeigniter中的多个批量更新不起作用【英文标题】:multiple batch update in codeigniter not working 【发布时间】:2022-01-19 12:37:39 【问题描述】:

我有一个 codeigniter 网站,用户可以使用复选框选择多个数据并一次编辑这些数据,一切正常,选择多行 cn,它们一次显示,但是在我提交表单后,它没有得到保存后,我做了以下操作:

<label for="inputEmail4">Product Name</label>
<input type="text" name="name[]" class="form-control" id="inputEmail4" value="<?=$valad->name?>" required>
<input type="hidden" name="id[]" class="form-control" id="inputEmail4" value="<?=$valad->id?>" required>

<label for="inputEmail4">SKU</label>
<input type="text" name="sku[]" class="form-control" id="inputEmail4" value="<?=$valad->sku?>" required>

if(isset($_POST['editinventoryproducts']))

  $id=$this->input->post('id');
$name=$this->input->post('name');
$sku=$this->input->post('sku');
$this->excel_import_model->editinventoryproductsm($id,$name,$sku);
$this->session->set_flashdata("Successade","Product Edited Successfully !");
redirect('inventoryproducts' , 'refresh');

最后是模型:

public function editinventoryproductsm($id,$name,$sku) 
$this->db->where_in('id', $id);
        $this->db->update('inventoryproducts', array('name' => $name, 'sku' => $sku));
        return true;

我收到以下数据库错误:

Unknown column 'Array' in 'field list'

UPDATE `inventoryproducts` SET `name` = Array, `sku` = Array WHERE `id` IN('16', '17')

谁能告诉我这里出了什么问题,提前谢谢

【问题讨论】:

您能否分享您的 UI,这可能会给我们一些想法。你的 html 看起来不像你说的那样工作 兄弟,问题在于插入数据库,html 很好,我正在使用 foreach 显示多个编辑表单,它工作正常,数据也通过按钮单击传递给控制器 【参考方案1】:

希望你的模型中有正确的数组数据,如果有,那么update_batch可以轻松完成。

首先您需要正确创建数组,然后$this-&gt;db-&gt;update_batch 的单行就足以完成您的工作:

public function editinventoryproductsm($id,$name,$sku) 
    $i = 0;
    foreach ($id as $a)
        $data[$i] = array('id' => $id[$i], 'name' => $name[$i],'sku' => $sku[$i]);
        $i++;
    

    $this->db->update_batch('inventoryproducts', $data, 'id');
    return true;

来自 CI 文档:第一个参数将包含表名,第二个是值的关联数组,第三个参数是 where 键。

【讨论】:

以上是关于codeigniter中的多个批量更新不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在 codeigniter 中的分页不起作用? (404 未找到)

Codeigniter 中的联系我们电子邮件功能不起作用

数据库事务在控制器 codeigniter 中不起作用

codeigniter - 在控制器中使用帮助器不起作用

Codeigniter:CSS 文件中的 base_url() 不起作用

HIbernate 批量插入或更新在 Spring Boot 中不起作用