Codeigniter insert_batch问题

时间:2016-10-05 08:54:58

标签: mysql sql codeigniter foreach

我试图使用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(); ?>  

但是当我运行它时,它会向我显示这样的错误:

  

发生数据库错误

     

你必须使用&#34; set&#34;更新条目的方法。

     

文件名:models / User.php

     

行号:47

1 个答案:

答案 0 :(得分: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) {....