2016-11-29 87 views
0

我試圖在codeigniter框架中的數據庫中插入值,但得到此錯誤。如何從數據庫中獲取自動遞增的ID值

A Database Error Occurred 

Error Number: 1054 

Unknown column '0' in 'field list' 

INSERT INTO `admin_table` (`0`) VALUES ('') 

Filename: C:\xampp\htdocs\CI\system\database\DB_driver.php 

Line Number: 331 

Admin_table

* ID INT(10)自動增量的主鍵

*名稱:VARCHAR(255)

*電子郵件:VARCHAR(255)

*名稱:varchar(255)

*聯繫人:int(10)

查看:

<form> 
<input type="hidden" name="ID"> 
<legend>Add Data</legend> 
    <label>Name</label> 
     <?php echo form_input(['name'=> 'Name','placeholder'=>'Name',]);?> 
    <label>Email</label> 
     <?php echo form_input(['name'=> 'Email','placeholder'=>'Email']);?> 
    <label>Designation</label> 
     <?php echo form_input(['name'=> 'Designation','placeholder'=>'Designation']);?> 
    <label>Contact</label> 
     <?php echo form_input(['name'=> 'Contact','placeholder'=>'Contact']);?> 
    <?php echo form_reset(['name'=>'Reset','value'=>'Reset']); ?> 
    <?php echo form_submit(['name'=>'submit','value'=>'Add']) ?> 
</form> 

控制器:

 $this->load->library('form_validation'); 
     $post= $this->input->post(); 
     $this->load->model('model'); 
     if($this->model->add_data($post)){ 
      //insert succesfully 
     } 
     else{ 
     //insert failed 
     } 

型號:

$this->db->insert('admin_table',$array); 
    $last_id=$this->db->insert_id(); 
    return $last_id; 

當我使用控制器的print_r($ POST),它不是打印字段的值但顯示的價值在url.Where我錯了,請告訴我。

在此先感謝。

+0

添加您的數據庫插入查詢。我認爲您的數據庫查詢是不正確的。 –

+0

我已經插入像這樣:$ this-> db-> insert('admin_table',$ array); – user6891871

+0

你是從哪裏來的?

」> –

回答

1

請勿在模型中傳遞所有post請求,使插入數據數組。

通過打印上次查詢來檢查查詢。

$this->db->last_query(); 
1

的問題源於以下行:

$this->db->insert('admin_table',$array); 

我認爲,$陣列不具備要求的格式值或爲空。因此,使用以下內容打印最後一個插入查詢:

$this->db->last_query(); 

並解決該問題。

+0

它顯示與我上面顯示的相同的錯誤。 – user6891871

+0

首先打印()數組內容並檢查它們是否包含一些值 –

+0

它不包含任何值..但爲什麼你可以解釋它。 – user6891871

0

在看到你的管理表的描述,我發現沒有列名爲「0'.Problem是在問query.I建議使用:也

INSERT INTO `admin_table` (`id`) VALUES ('1') 

,如果列標記自動遞增那麼就沒有必要提供明確的值。數據庫將獲取以前的值並自行增加它。