php – 使用CodeIgniter的活动记录将NOW()插入数据库

我想使用codeigniter的活动记录中的mySQL函数NOW()在数据库中插入当前时间。以下查询将不起作用:

$data = array(
        'name' => $name ,
        'email' => $email,
        'time' => NOW()
        );
        $this->db->insert('mytable', $data);

这是因为CodeIgniter的ActiveRecord类自动转义输入。

下面的工作正常,通过调用set()和传递peratmeter FALSE,使它不逃脱NOW()。

$data = array(
        'name' => $name ,
        'email' => $email,
        );
        $this->db->set('time', 'NOW()', FALSE);
        $this->db->insert('mytable', $data);

但是,我的问题是,有没有任何其他方式,而不是这个?例如,如果我可以使用某种方式使用通过添加数据数组中的所有东西?
例如,像:

$data = array(
            'name' => $name ,
            'email' => $email,
            'time' => NOW(), FALSE
            );
除非我大错误,答案是:“不,没有办法。

在这种情况下的基本问题是,你正在调用一个MySQL函数,你实际上没有设置一个值。 CI转义值,以便您可以执行一个干净的插入,但它不测试,看看这些值是否恰好调用函数像aes_encrypt,md5或(在这种情况下)now()。虽然在大多数情况下,这是美好的,对于那些情况下,原始的sql是唯一的追索。

在一边,日期(‘Y-m-d’);应该作为PHP的NOW()MySQL版本。 (它不会工作的所有版本的SQL虽然)。

http://stackoverflow.com/questions/6354315/inserting-now-into-database-with-codeigniters-active-record

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:php – 使用CodeIgniter的活动记录将NOW()插入数据库