在 Codeigniter 插入数组中使用类似 NOW() 的东西

Posted

技术标签:

【中文标题】在 Codeigniter 插入数组中使用类似 NOW() 的东西【英文标题】:Using something like NOW() in a Codeigniter insert array 【发布时间】:2012-10-19 01:27:33 【问题描述】:

因为 NOW() 是一种 mysql 方法,我似乎无法让它在下面的数组中工作。什么是我可以在 php 中使用的函数,它将与 NOW() 方法执行相同的操作。

$data = array('node1id' => $leader_id,
              'node2id' => $idgen,
              'friendsSince' => NOW(),
$this->db->insert('users', $data);

【问题讨论】:

Inserting NOW() into Database with CodeIgniter's Active Record的可能重复 【参考方案1】:

使用 codeigniter 日期助手并保持相同的符号:

$this->load->helper('date');

$data = array('node1id' => $leader_id,
          'node2id' => $idgen,
          'friendsSince' => now(),
$this->db->insert('users', $data);

CI 文档中有关日期助手的更多信息:http://ellislab.com/codeigniter/user_guide/helpers/date_helper.html

【讨论】:

mysql 函数 NOW() 返回适合时间戳或日期时间字段的当前日期和时间。 codeigniters 日期助手中的 now() 函数以 unix 时间戳返回时间。如果您的字段是 DATETIME 或 TIMESTAMP,则此答案将不起作用。其他两个答案会起作用,Kamrul 的答案是最好的。【参考方案2】:

您可以根据需要使用date("Y-m-d");date("Y-m-d H:i:s"); DATE vs DATETIME

【讨论】:

^ 我是 Claudrian,我支持这条信息!手动操作,为您提供更多动力。 也许,你需要这样做: date("Y-m-d H:i:s",strtotime($time-string));【参考方案3】:

试试

$this->db->set('node1id', $leader_id);  
$this->db->set('node2id', $idgen);
$this->db->set('friendsSince', 'NOW()', FALSE); 

$this->db->insert('users');

每当使用 MySQL 函数时,使用 FALSE 作为第三个参数。

【讨论】:

以上是关于在 Codeigniter 插入数组中使用类似 NOW() 的东西的主要内容,如果未能解决你的问题,请参考以下文章

在codeigniter中插入活动记录数据库

使用 CodeIgniter 将数组数据插入两个表中

Codeigniter——Foreach 将数组插入数据库

无法使用 php codeigniter 插入批量记录

CodeIgniter 中有类似 $this->db->matched_rows() 的东西吗?

Codeigniter,事务中的错误跟踪