当前位置: 首页 > 知识库问答 >
问题:

CodeIgniter:消息:未初始化的字符串偏移量:2。。。使用insert\u批处理

曹建华
2023-03-14

我正在尝试使用函数insert\u 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个答案

漆雕令秋
2023-03-14
$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);

让你的控制器代码如上,它将工作。只看$data_description_list中的变化

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

林俊晖
2023-03-14

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

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

来自Codeigniter用户指南

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

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

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

因此,我怀疑您可能对$this有问题-

在处理之前进行验证总是很好的,在当前上下文中,您可以这样做

$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));
}

 类似资料:
  • 问题内容: 我有一个用户填写的表单,在表单上有多个相同的字段,例如“项目名称”,“项目日期”,“类别”等。基于用户提交的表单数量,我的目标是: 循环表格数量 创建单个SQL插入语句 但是,PHP向我抛出一条我似乎不理解的通知: 注意: 注意:未初始化的字符串偏移量:1 …第90行的dataPasser.php 的PHP 我已经提到了这个问题,但是它们并不准确,因此我无法推断出实际问题的出处。我将不

  • 考虑以下初始化: 在g 5.2.0中,编译器对falseString发出警告,而对trueString发出错误。 使用clang 3.6-std=c 11时,编译器会对假字符串和真字符串抛出错误。 Q1)为什么的行为不同,即使两个初始化值是相同的类型()? Q2)哪个编译器是正确的,为什么?标准怎么说? 编辑: 错误:从“bool”到“std::string”(又名“basic\u string”

  • 如果String和其他类一样,那么如何使用双引号初始化它?

  • 我有一个自定义的Kafka消费者,我用它向REST API发送一些请求。根据API的响应,我要么提交偏移量,要么跳过没有提交的消息。 现在,当来自REST API的响应没有以开头时,偏移量不会提交,但消息不会被重新使用。如何强制使用者重新使用未提交的偏移信息?

  • 我需要打印/记录/存储处理消息的kafka分区和偏移量。我如何才能做到这一点?我使用StreamBridge从制作人那里发送消息,还使用功能性spring kafka streams方法