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

,如果列标记自动递增那么就没有必要提供明确的值。数据库将获取以前的值并自行增加它。