"批量插入"在数据库中插入null值

时间:2017-08-07 07:42:22

标签: php codeigniter

我不知道为什么在点击"添加按钮"后,需要插入数据库的项目为NULL。

所以我的控制器

public function addItem(){
  $data = array(
   "item_ID"=>$_POST['item_ID'],
   "itemName"=>$_POST['itemName'],
   "itemDescription"=>$_POST['itemDescription'],
   "itemLink"=>$_POST['itemLink']
  );
  $orgID = $this->model->get_org();
  $this->model->insertItem($data,$orgID);
}

这是我的模特

public function insertItem($data,$orgID){
  $this->db->insert('Items',$data);
  $getID=$this->db->insert_id();
  foreach($orgID as $temp):
    $Organization_ID = $_POST[$temp->OrganizationID];
  endforeach;
  $SkillReq=$this->input->post('0');
  $Skill_ReqID=$this->input->post();

  $insertdata = array();
  for($i=0; $i=count($orgID); $i++){
    $insertdata[]=array(
       'Skill_ReqID'=>$Skill_ReqID[$i],
       'OrganizationID'=>$Organization_ID[$i],
       'item_ID'=>$getID[$i],
       'SkillReq'=>$SkillReq[$i]
      );
     }
  $this->db->insert_batch('skillreqdept',$insertdata);
 }

它实际上插入了在orgID中计算过但没有数据的行,只有自动增量的skill_reqID包含在其中。

2 个答案:

答案 0 :(得分:1)

我认为问题出在Skill_ReqID'=>null[$i],我不知道null变量是什么。

请尝试以下操作:

public function insertItem($data,$orgID){

      $this->db->insert('Items',$data);
      $getID=$this->db->insert_id();
      foreach($orgID as $temp):
        $Organization_ID = $_POST[$temp->OrganizationID];
      endforeach;
      $SkillReq=$this->input->post('0');

      $insertdata = array();
      for($i=0; $i=count($orgID); $i++){
        $items=array(
           'OrganizationID'=>$Organization_ID[$i],
           'itemID'=>$getID[$i],
           'SkillReq'=>$SkillReq[$i]
           );

            array_push($insertdata, $items);
         }

      $this->db->insert_batch('skillreqdept',$insertdata);
 }

答案 1 :(得分:1)

雅,它应该是空的。检查数组"

public function addItem(){
  $data = array(
   'item_ID"=>$_POST['item_ID'], <== wrong wrapping 
   'itemName"=>$_POST['itemName'],
   'itemDescription"=>$_POST['itemDescription'],
   'itemLink"=>$_POST['itemLink']
  );
  $orgID = $this->model->get_org();
  $this->model->insertItem($data,$orgID);
}

如果你正在使用适当的IDE,它会突出显示像这样的小问题

enter image description here

同样insertdata是任何预定义的PHP标记/函数??

enter image description here

这个null[$i]分配的是什么。我从来没有听说过。

在插入之前使用print_r检查数据的格式是否正确。 print_r($insertdata); die;