Codeigniter将多个查询插入表

时间:2013-02-20 20:56:00

标签: php mysql database codeigniter

我目前正在使用codeigniter为库存跟踪系统创建一个应用程序。我已经创建了一种创建/显示/更新/删除事件的方法。我遇到的问题是库存表。我正在显示一个表格,每一行都是一个独特的产品。我希望能够同时更新数据库库存表行。我在我的模型中尝试这样的事情:

function insert_inventory($data){

    foreach($_POST['product'] as $product){
        $this->db->insert('inventory', $data);
    }
}

这是控制器:

function add_show_inventory() {
    $data['products']=$this->product->get_products();

    $this->form_validation->set_rules('skuID', 'skuID', 'required');
    $this->form_validation->set_rules('brought-in', '"Brought In"', 'required');
    $this->form_validation->set_rules('finished-with', '"Finished With"', 'required');
    $this->form_validation->set_rules('deliveries', 'Deliveries');
    $this->form_validation->set_error_delimiters('<div class="error-module">', '</div>');

    if($this->form_validation->run()== FALSE){
        $this->load->view('header');
        $this->load->view('menu');
        $this->load->view('inventory/show-add-inventory', $data);
        $this->load->view('footer');
    } else {
        if($_POST){

            //$data['show']=$this->show->get_show();

            $data=array(
                'skuID'=>$_POST['skuID'],
                'product'=>$_POST['product'],
                'deliveries'=>$_POST['deliveries'],
                'brought-in' =>$_POST['brought-in'],
                'finished-with'=>$_POST['finished-with'],
            );

            $this->inventory->insert_inventory($data);
            redirect(base_url().'shows/');
        }
    }
}

有关如何同时插入多行的任何想法?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

为此优化您的代码:$this->db->insert_batch();

$data = array(
   array(
      'title' => 'My title' ,
      'name' => 'My Name' ,
      'date' => 'My date'
   ),
   array(
      'title' => 'Another title' ,
      'name' => 'Another Name' ,
      'date' => 'Another date'
   )
);

$this->db->insert_batch('mytable', $data);