我正在尝试使用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
我做错了什么?
答案 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]
访问它们。
第一个参数将包含您要查找的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));
}