SQL NOW()给出了00:00:00

时间:2010-11-13 19:33:31

标签: mysql codeigniter types

我使用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;
}

2 个答案:

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