2017-08-07 156 views
1

我不知道为什么点击“添加按钮”后,需要插入到数据库中的项目是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在它。

+0

什么是''Skill_ReqID'=> null中的null变量[$ i],'? –

+0

它在数据库中自动递增,因此与它无关。 – Vhey

+0

请检查这一行,foreach($ orgID为$ temp): $ Organization_ID = $ _POST [$ temp-> OrganizationID]; endforeach;我认为这是不正确的! –

回答

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); 
} 
+0

当然可以吗? –

+0

是的,请试试 –

+0

仍然在数据库中为null。 – Vhey

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;

+0

我认为这不是问题,但这完全不起作用,并会产生错误 – MacBooc

+0

@MacBooc错误??呃,如果**环境是生产**或**错误报告关闭** ***你得到空屏幕*** –

+0

我总是使用$ _POST ['name_name']和下划线,没有什么错。 – Vhey