codeigniter 中的多批更新不起作用
multiple batch update in codeigniter not working
我有一个 codeigniter 网站,用户可以使用复选框 select 多个数据并一次编辑这些数据,一切正常,多行 cn 被 selected,它们一次显示,但在我提交表格后,它没有被保存,我做了以下事情:
<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')
谁能告诉我这里有什么问题,在此先感谢
希望您的模型中有正确的数组数据,如果是这样,那么这可以通过 update_batch
轻松完成。
首先你需要正确地创建数组,然后单行 $this->db->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 文档:第一个参数将包含 table 名称,第二个是值的关联数组,第三个参数是 where 键。
我有一个 codeigniter 网站,用户可以使用复选框 select 多个数据并一次编辑这些数据,一切正常,多行 cn 被 selected,它们一次显示,但在我提交表格后,它没有被保存,我做了以下事情:
<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')
谁能告诉我这里有什么问题,在此先感谢
希望您的模型中有正确的数组数据,如果是这样,那么这可以通过 update_batch
轻松完成。
首先你需要正确地创建数组,然后单行 $this->db->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 文档:第一个参数将包含 table 名称,第二个是值的关联数组,第三个参数是 where 键。