写入mysql数据库的值不正确

时间:2014-02-09 17:28:39

标签: php mysql codeigniter

我正在尝试将值写入数据库。一切似乎都很好,除了一个值是神秘不正确的。我只是想不出来。

在这里使用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;
}

1 个答案:

答案 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