2015-12-26 95 views
0

我想驗證我在codeigniter中的插入數據驗證插入codeigniter

問題是代碼返回重複條目的頁面錯誤。我想把錯誤信息丟到主頁。

這裏是我的代碼:

$data = array(
      'heheId' => $this->input->post('heheId'), 
      'userId' => $this->input->post('userId') 
     ); 
    $this->db->insert('tentarasaya',$data); 
    if ($this->db->affected_rows() > 0){ 
     $this->session->set_flashdata('info', "Hore sukses"); 
    } else { 
     $this->session->set_flashdata('danger', "Fail insert"); 
    } 
    redirect('my_home'); 

任何答案嗎?

更新: 重複這樣

enter image description here

+0

對於重複條目捆綁使用唯一的驗證'$這 - > form_validation-> set_rules( 'FIELD_NAME', '場', '修剪|所需| is_unique [TABLENAME.COLUMNNAME]'); ' – Saty

+0

這是外鍵問題 –

+0

,並且您已在數據庫中將其設置爲** Unique **。 ***刪除它*** –

回答

1

進入試試這個

$data = array(
    'heheId' => $this->input->post('heheId'), 
    'userId' => $this->input->post('userId') 
); 
if (!$this->db->insert('tentarasaya',$data)) { # add if here 
    # Unsuccessful 
    $this->session->set_flashdata('danger', "Fail insert"); 
} 
else{ 
    # Success 
    $this->session->set_flashdata('info', "Hore sukses"); 
} 
redirect('my_home'); 
+0

不工作,我仍然卡在重複條目的頁面 –

+0

重複條目頁面的意思?? –

+0

@Andhika檢查[住宿評論](http://stackoverflow.com/questions/34471990/validating-insert-codeigniter#comment56685328_34471990) –

0

確保自動增量選項,在數據庫中選擇。我假設這裏的user_id是一個主鍵,不需要自己將其插入到數據庫中。

data = array(
      'heheId' => $this->input->post('heheId'), 
     ); 
    $this->db->insert('tentarasaya',$data); 

否則,如果要插入user_ids自己,你可以1)自定義一個回調函數來檢查,看看是否在指定的用戶ID在數據庫中已存在,2)使用is_unique表單驗證規則來與笨