我使用codeigniter使用NOW()完成了SQL插入。 而不是当前时间我在我的数据库重新编码中得到0000-00-00 00:00:00。 我使用最新的WAMP作为我的服务器,无法理解问题出在哪里。 请帮帮我。
function createform($form_data)
{
$this->db->set('created', 'NOW()',TRUE);
$this->db->insert('amfbases', $form_data);
if ($this->db->affected_rows() == '1')
{
return TRUE;
}
return FALSE;
}
答案 0 :(得分:6)
检查您的列数据类型,是否引用NOW(),如insert into table values ("NOW()");
?
<强>更新强>
$this->db->set('created', time(),TRUE);
或
$this->db->set('created', date('Y-m-d H:i:s'),TRUE);
或将您的表架构更新为
add_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
已更新2
NOW()
指定给MYSQL,PHP将其解释为字符串,并且不能将它们混合在一起
答案 1 :(得分:1)
实际上正确的方法(即将sql函数传递给db)是指定第三个参数为FALSE
例如:
$this->db->set('created', 'NOW()', FALSE); // notice FALSE
这将导致codeigniter传递第二个参数而不引用它,导致sql将其解释为函数。
适用于:
$this->db->set('counter', 'counter + 1', FALSE);
供参考:http://codeigniter.com/user_guide/database/active_record.html