我正在尝试在codeigniter框架中的数据库中插入值,但是收到此错误。
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中显示值。如果我错了,请告诉我。
提前致谢。
答案 0 :(得分:1)
不要在模型中传递所有post请求,使插入数据数组。
按打印上次查询检查查询。
$this->db->last_query();
答案 1 :(得分:1)
问题来自以下几行:
$this->db->insert('admin_table',$array);
我认为$数组没有所需格式的值,或者它是空的。因此,使用以下方法打印最后一个插入查询:
$this->db->last_query();
并解决问题。
答案 2 :(得分:0)
在看到您的管理员表格描述后,我发现没有名为“0”的列。问题在询问中。我建议使用此:
<table class = "table">
<thead>
<tr>
<td><center><strong>Item Id</strong></center> </td>
<td><center><strong>Item Description</strong></center> </td>
<td><center><strong>Item Type</strong> </center></td>
<td><center><strong>Availability</strong></center></td>
<td><center><strong>Name</strong></center></td>
<td><center><strong>Check in/out button</strong></center></td>
</tr>
</thead>
<tbody>
<?php
mysql_select_db('inventory management system');
$query="SELECT * FROM inventory";
$results = mysql_query($query);
$a = 0;
while($row = mysql_fetch_array($results)) {
$a++;
echo '<script type = "text/javascript">c++;</script>'
?>
<tr>
<td><center><?php echo $row['item_id']?></center></td>
<td><center><?php echo $row['item_desc']?></center></td>
<td><center><?php echo $row['item_type']?></center></td>
<td><center><?php echo $row['availability_status']?></center></td>
<td><center><?php echo $row['name']?></center></td>
<td><center><?php
if(is_null($row['name'])){
//this is what is generating each button with a unique id echo '<input class="btn btn-default" type="submit" value="Check Out" id = "<?php echo $a; ?>" onclick="<?php ?>">';
}else if(!is_null($row['name'])){
echo '<input class="btn btn-default" type="submit" value="Check In" id = "<?php echo $a; ?>" onclick="updateinventory()">';
}
?></center></td>
</tr>
<?php
}
?>
</tbody>
</table>
此外,如果列标记为自动增量,则无需提供显式值。数据库将获取先前的值并自行递增。