2017-08-07 28 views
1

"Add Button"をクリックした後、データベースに挿入する必要がある項目がNULLである理由がわかりません。"Batch Insert"はデータベースに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); 
} 

だとここで私のモデルは、それが実際ORGIDでカウントされていた行を挿入しますが、データが存在しない、唯一の自動車に増分skill_reqIDがでてい

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

ですそれ。

+0

'' Skill_ReqID '=> 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

雅、それが空である必要があります。あなたは適切なIDEを使用している場合、それはこの

enter image description here


同様insertdataのようなマイナーな問題をハイライト表示されます、あなたの配列"

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

をチェックしても、定義済みのPHPタグ/機能です??同様に、このnull[$i]割り当てが何であるかを

enter image description here


。私はそれについて聞いたことがありません。


データをチェックするために使用print_rを挿入しない前に、正しい形式であるかどうか。 print_r($insertdata); die;

+0

これは問題ではないと思いますが、これはまったく動作せず、エラーが発生します。 – MacBooc

+0

@MacBooc Error ?? **環境がプロダクションであるか** **エラーレポートがオフ** **空の画面が表示される*** –

+0

私は常に$ _POST ['name_name']をアンダースコアで使用していますが、何も問題はありません。 – Vhey

関連する問題