【问题标题】:Multi Insert in CodeigniterCodeigniter 中的多插入
【发布时间】:2018-06-18 15:39:11
【问题描述】:

我想用FK在我的数据库表中进行多次插入,但只输入一行记录,可能是我没有计算$count。这是我的代码

型号

public function create($table,$data)
    {
    $query = $this->db->insert($table, $data);
     return $this->db->insert_id();
    }

控制器

public function save($id)
    {
    $id_form = $id;
    $id_interversion = $this->model->create('mytable1',$data);
        $Inicio = $_POST['Inicio'];
        $Termino = $_POST['Termino'];
        $id_tecnico = $_POST['id_tecnico'];
        $count = count($_POST['id_tecnico']);
        $data2 =array();
                for ($i=0; $i <$count; $i++) {
                    $data2 = array(
                             'id_tecnico'=>$id_tecnico[$i],
                             'horaInicio'=>$Inicio[$i],
                             'Termino'=>$Termino[$i]
                     );
                 $this->model->create('mytable2',$data2);

                }


}

查看

<?php echo form_open("controller/save/{$data->id}"); ?>
      <?php for ($i=0; $i <2; $i++) { ?>
        <input type="text" name="id_tecnico[]"  value="" class="form-control">
        <input type="text" name="Inicio[]"  value="" class="form-control">
        <input type="text" name="Termino[]"  value="" class="form-control">
       <?php } ?>

       <?php echo form_close(); ?>

希望我解释清楚问候

【问题讨论】:

  • print_r($_POST['id_tecnico']);退出;并将输出添加到问题。

标签: php database codeigniter codeigniter-3


【解决方案1】:

像这样尝试insert_batch

public function save($id = NULL)
{
    $id_form = $id;
    //$id_interversion = $this->model->create('mytable1',$data);
    $id_interversion = 12; // a custom id
    $Inicio = $this->input->post('Inicio');
    $Termino = $this->input->post('Termino');
    $id_tecnico = $this->input->post('id_tecnico');
    foreach ($id_tecnico as $key => $item) 
    {
        $insert_data[] = array(
                'id_interversion' => $id_interversion,
                'id_tecnico'=> $item,
                'horaInicio'=> $Inicio[$key],
                'Termino'=> $Termino[$key]
              );
    }
    //print_r($insert_data);die;
    $this->db->insert_batch('mytable2',$insert_data);
}

【讨论】:

    【解决方案2】:

    您可以将插入值合并到一个数组中,并使用 codeigniter insert_batch 方法。

    这是一个有用的文档 https://www.codeigniter.com/userguide3/database/query_builder.html

    【讨论】:

      猜你喜欢
      • 2019-07-31
      • 2015-01-23
      • 2011-04-20
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 2011-02-16
      相关资源
      最近更新 更多