2016-11-29 10 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)

* Eメール: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($ポスト)を使用する場合、それはフィールドの値を印刷していませんしかしurl.Whereの値を示す私は間違っている私に教えてください。

ありがとうございます。

+0

データベースの追加クエリを追加します。データベースクエリが正しくないと思います。 –

+0

私はこのように挿入しました:$ this-> db-> insert( 'admin_table'、$ array); – user6891871

+0

あなたのアクションはどこですか?

答えて

1

モデル内のすべての投稿要求を渡さないで、データ配列を挿入します。

最後のクエリを印刷してクエリを確認してください。

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

問題は、次の行から生じる:私は$配列が必要な形式で値を持っていないか、それが空であると考え

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

。したがって、最後の挿入クエリは、

$this->db->last_query(); 

を使用して印刷し、問題を解決してください。列が自動インクリメントをマークされている場合、

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

をも:

+0

私は上記と同じエラーを表示しています。 – user6891871

+0

まず、配列の内容をprint()して、値が含まれているかどうかを確認してください。 –

+0

それは値を含んでいません。なぜ説明できますか? – user6891871

0

は、あなたの管理者テーブルの記述を見て、私はquery.Iがこれを使用することをお勧め頼んである「0'.Problemという名前の列が存在しないことがわかりました明示的な値を指定する必要はありません。データベースは前の値をフェッチし、それ自体でインクリメントします。

関連する問題