我有一個 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')
誰能告訴我這里有什么問題,提前致謝
uj5u.com熱心網友回復:
希望您在模型中有正確的陣列資料,如果是這樣,那么這可以通過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 檔案:第一個引數將包含表名,第二個是值的關聯陣列,第三個引數是 where 鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/383188.html
上一篇:通過匯總a來獲取SQL中的行,直到超過某個值并停止檢索
下一篇:我是否需要顯式回滾事務?
