CodeIgniter:消息:未初始化的字符串偏移量:2 ...使用insert_batch

时间:2015-06-01 14:47:43

标签: php codeigniter

我正在尝试使用insert_batch函数插入多行。 值来自表格。

控制器

$product_sub_desc_en = $this->input->post('list-en');
$product_sub_desc_ru = $this->input->post('list-ru');
$id = $this->input->post('product-id');

$data_description_list =array();
for($i=0; $i<10; $i++) {
$data_description_list[$i] = array(
       'english' => $product_desc_en[$i], 
       'russian' => $product_desc_ru[$i],
       'productID'=>$id
);
}
$this->get_shop_products->insert_new_product_description_list($data_description_list);

模型

public function insert_new_product_description_list($data){
$this->db->insert_batch('product', $data); 
}

调用查询后,我收到以下错误:

  

消息:未初始化的字符串偏移量:2       ......直到... //消息:未初始化的字符串偏移量:9

我做错了什么?

2 个答案:

答案 0 :(得分:0)

$product_sub_desc_en = $this->input->post('list-en');
$product_sub_desc_ru = $this->input->post('list-ru');
$id = $this->input->post('product-id');

$data_description_list =array();
for($i=0; $i<10; $i++) {
  $data_description_list[] = array(
   'english' => $product_desc_en[$i], 
   'russian' => $product_desc_ru[$i],
   'productID'=>$id

   );
}
$this->get_shop_products->insert_new_product_description_list($data_description_list);

如上所述制作控制器代码,它将起作用。仅查看for {/ p>中的$data_description_list中的更改

如果这不能解决您的问题,请告诉我

答案 1 :(得分:0)

  

消息:未初始化的字符串偏移量:2 ...直到... //消息:   未初始化的字符串偏移量:9

如果以下任何变量实际上是字符串或null而不是数组,则会发生此错误,在这种情况下使用数组语法$arr[$i]访问它们。

来自Codeigniter User Guide

第一个参数将包含您要查找的POST项目的名称:

$this->input->post('some_data');

如果您尝试检索的项目不存在,则该函数返回FALSE(布尔值)。

所以我怀疑你可能遇到$this->input->post('some_name')

的问题

在处理之前验证总是好的,在当前上下文中你可以做这样的事情

$product_sub_desc_en = $this->input->post('list-en');
$product_sub_desc_ru = $this->input->post('list-ru');
$id = $this->input->post('product-id');

if( $product_sub_desc_en && $product_sub_desc_ru && $id )
{
    // Do whatever you want here
}else
{
   // Error log
   log_message('error', 'Something went wrong with post data --> '.print_r($this->input->post(),true));
}