2014-02-09 49 views
0

我正在嘗試向數據庫寫入值。一切似乎都很好,除了一個值是神祕不正確的。我無法弄清楚這一點。寫入mysql數據庫的值不正確

使用笨這裏是我的控制器:

$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_id158(或任意數量真的),我也可以將此值回顯到視圖確認。

輸出到視圖的錨鏈接與預期相同,並且包含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

讀你這樣做的創建()或打印上次查詢裏面的print_r? –

+0

請發表你的表格結構,或者至少是列類型 – RezaSh

+0

@Drdavidpier你在哪裏聲明瞭$ db_data數組.. ..?你有沒有在代碼中指定它爲一個數組? –

回答

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

+0

是的,它是tinyint。不知道那是怎麼回事,但我沒有想到要去找它。太感謝了!! – EnduroDave

+0

@Drdavidpier你在哪裏聲明瞭$ db_data數組? –