繁体   English   中英

代码点火器-批量插入功能可在数据库中插入空字段

[英]Code Igniter- Batch Insert function inserts null fields in database

每当我尝试插入数据时,两列的字段都为空。 只有自动递增的(当然)MainReqID和最后一列具有字段。 这是我的控制器。

public function insert_main($data,$orgs){
  $this->db->insert('insert_main',$data);
  $getID = $this->db->insert_id();

  $ctr=1;
  $insertorg = array();
  foreach($i=0; $i<count($orgs); $i++){
     $insertorg[] = array(
       'OrgID'=>$ctr[$i],
       'MainID'=>$getID[$i],
       'Level'=>'1234'[$i]
     );
  $ctr++;
  }
  $this->db->insert_batch('insert_mainreq',$insertorg);
}

这是数据库中的样子...

MainReqID | OrgID | MainID | Level
1         | null  | null   | 1234
2         | null  | null   | 1234
3         | null  | null   | 1234
4         | null  | null   | 1234
5         | null  | null   | 1234.. and so on..

我需要这样的东西。

MainReqID | OrgID | MainID | Level
1         | 1     | 3      | 1234
2         | 2     | 3      | 1234
3         | 3     | 3      | 1234
4         | 4     | 3      | 1234
5         | 5     | 3      | 1234.. and so on..

看起来$getID不是数组,但是您要添加$getID[i] 这肯定行不通。 $ctr相同。 这是一个整数,但是您正在尝试$ctr[i] Level也发生了同样的事情。

public function insert_main($data,$orgs){
  $this->db->insert('insert_main',$data);
  **$getID** = $this->db->insert_id();

  **$ctr=1;**
  $insertorg = array();
  foreach($i=0; $i<count($orgs); $i++){
     $insertorg[] array(
       'OrgID'=>**$ctr[$i]**,
       'MainID'=>**$getID[$i]**,
       'Level'=>**'1234'[$i]**
     );
  $ctr++;
  }
  $this->db->insert_batch('insert_mainreq',$insertorg);
}

您可以尝试一下,但不确定您要使用OrgId和MainID做什么,但是:

public function insert_main($data,$orgs){
  $this->db->insert('insert_main',$data);
  $getID = $this->db->insert_id();

  $insertorg = array();
  foreach($i=0; $i<count($orgs); $i++){
     $insertorg[] array(
       'OrgID'=> $i,
       'MainID'=>$getID,
       'Level'=>'1234'
     );
  }
  $this->db->insert_batch('insert_mainreq',$insertorg);
}

请记住, $this->db->insert_id(); 如果有多行,将返回插入的最后一行的ID。

尝试以下代码:

public function insert_main($data,$orgs){
$this->db->insert('insert_main',$data);
$getID = $this->db->insert_id();

$insertorg = array();
    foreach($i=0; $i<count($orgs); $i++)
    {
    $insertorg[] = array(
        'OrgID'=> $i,
        'MainID'=>$getID,
        'Level'=>'1234'
    );
    }           
$this->db->insert_batch('insert_mainreq',$insertorg);

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM