Codeigniter insert_batch 问题

Posted

技术标签:

【中文标题】Codeigniter insert_batch 问题【英文标题】:Codeigniter insert_batch issue 【发布时间】:2017-02-13 15:13:42 【问题描述】:

我正在尝试使用 insert_batch 向数据库中插入多个值。但它向我显示错误。

控制器:

    public function add()
    
        $data['title'] = $this->input->post('title');
        $data['file'] = $this->input->post('file');
        $this->user->in();
      

型号:

 public function in()
 
        $data['title'] = $this->input->post('title');
        $data['file'] = $this->input->post('file');

        foreach ($title as $key => $n) 

                        $insert = array(
                                'title' => $n,
                                'file' => $file[$key]
                                );
                        // echo $n."->".$file[$key].'<br>' ;
            
            $this->db->insert_batch('title',$insert);  //line 42 in user.php (error)
            // return $query;
   

查看:

<?php echo form_open('location/add'); ?>
<div>
  <input type="text" name="title[]"><br>
  <input type="text" name="file[]">
</div>
<br><br>
<div>
  <input type="text" name="title[]"><br>
  <input type="text" name="file[]">
</div>   <br><br>   
<div>
  <input type="text" name="title[]"><br>
  <input type="text" name="file[]">
</div>
<input type="submit" name="" value="enter">
<?php echo form_close(); ?>  

但是当我运行它时,它会显示如下错误:

发生数据库错误

您必须使用“set”方法来更新条目。

文件名:models/User.php

行号:47

【问题讨论】:

【参考方案1】:

而不是这个

$insert = array(
   'title' => $n,
   'file' => $file[$key]
);

应该像下面这样

 $insert[] = array(
     'title' => $n,
     'file' => $data['file'][$key]
 );

而不是这个

 foreach ($title as $key => $n) ...

使用

 foreach ($data['title'] as $key => $n) ....

【讨论】:

如果我想上传这样的文件怎么办? &lt;input type="file" name="file[]"&gt; 谢谢兄弟..它为我工作。但我无法将文件名插入我的数据库。你能帮我么。这是我的完整代码Code 你能帮我做这件事吗? 请检查我已经给出的链接,我认为这是您正在寻找的解决方案 我检查了那个链接,但我找不到这个问题的解决方案。唯一的问题是我没有得到文件名

以上是关于Codeigniter insert_batch 问题的主要内容,如果未能解决你的问题,请参考以下文章

插入批处理,如果在Codeigniter 3 HMVC中有重复的密钥更新

使用 Codeigniter 插入忽略

无法使用 php codeigniter 插入批量记录

在Codeigniter中运行多个以分号分隔的查询

INSERT Batch,如果在 codeigniter 中重复键更新

来自 json api 的 Insert_batch