我正在尝试将值写入数据库。一切似乎都很好,除了一个值是神秘不正确的。我只是想不出来。
在这里使用codeigniter是我的控制器:
$sample_id = $this->input->post('sample_id');
$culture_id = $this->input->post('culture_id');
$sample_name = $this->vial_model->get_name($culture_id);
$box_id = $this->input->post('boxid');
$db_data['boxid'] = $box_id;
$db_data['taskid'] = $sample_id;
$db_data['projectid'] = $culture_id;
$vial_id = $this->vial_model->create($db_data);
$vial_link = '<a href="'.base_url('freezer_vial/view/'.$culture_id.'/'.$sample_id.'/'.$vial_id).'" >'.$sample_name.'</a>';
让我们假设$sample_id
的值为158
(或任何数字),我可以将此值回显给视图进行确认。
输出到视图的锚链接符合预期,包含158
。但是,$db_data['taskid']
的值始终为127
,并以此形式插入到数据库中。我不知道为什么。其他一切都很好。
以下是模型:
public function create($data)
{
$insert = $this->db->insert('vial', $data);
if($insert)
return $this->db->insert_id();
else
return false;
}
答案 0 :(得分:1)
数据库表中包含sample id
值的列可能已定义为tinyint
。另请参阅https://stackoverflow.com/a/16684301/282073。
您可能希望更改列类型,以确保每次新插入或更新都不会更改数据。可以在另一个答案https://stackoverflow.com/a/13772308/282073
中找到实例可以阅读更改表格的官方文档 http://dev.mysql.com/doc/refman/5.1/en/alter-table.html