2017-02-28 80 views
1

目前,我正在使用Codeigniter 3.1.0。我試圖在Model中使用$ this-> db-> insert('table')插入數據。Codeigniter DB插入不正常(它插入錯誤的值)

的問題是,當嘗試插入某一日提交的值作爲0,就不會插入0,相反,它插入10.

我已驗證數據和它的類型的值。

任何建議或意見,將不勝感激。先謝謝你。

$data['Vat'] = 0; 

    foreach ($data as $key => $value) { 
     if ($value === null) { 
      continue; 
     } 
     $this->db->set($key, $value); 
    } 
    // $this->db->set('Vat', 0); 

    $this->db->insert(self::TABLE); 
    $q = $this->db->affected_rows(); 
    return $this->db->insert_id(); 
+0

表列是否有默認值,並且列本身是否與您正在使用的數據鍵具有相同的名稱(和大小寫)? – gabe3886

+0

@ gabe3886 我沒有該列'Vat'的默認值。列的名稱與數據鍵不同(列的名稱是'Vat',數據鍵是'vat')。不過,我還有另外一些柱子都是較低的,而且他們沒有任何插入問題。 –

回答

1

您可以使用last_query()函數查看您的查詢。只需在$ this-> db-> insert(self :: TABLE)後添加下面一行:並檢查查詢是否完美。你會知道你錯過的地方。

 echo $this->db->last_query(); die;
+0

謝謝你的迴應。我已經嘗試過你的建議;我複製了查詢並執行了它。它爲大桶插入正確的值。但是,當我嘗試通過模型插入日期時,它會插入10而不是0,這是期望值。 –

0

查詢是正確的,但是,放功能後,更新的功能(這是我沒想到的)被執行,並更新其值設置爲10 謝謝大家的響應。