2017-02-28 50 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 谢谢大家的响应。