它是如何工作的?
// Purge obsolete login attempts
$this->db->or_where('UNIX_TIMESTAMP(time) <', time() - $expire_period);
$this->db->or_where 是代码点火器方法,"UNIX_TIMESTAMP"和 time() 都返回时间戳,我不知道为什么"UNIX_TIMESTAMP"会小于第二个参数。
time
是数据库中的一个字段(很可能是日期时间字段),数据库正在将其转换为Unix时间戳格式。所以理论上它相当于写这个:
$this->db->or_where('time <', date('Y-m-d H:i:s', (time() - $expire_period)));
我对Codeigniter框架一无所知。但UNIX_TIMESTAMP()
部分是一个SQL函数,用于获取或解析日期作为Unix时间戳。您可以在MySQL日期和时间函数文档中查看它。
因此,UNIX_TIMESTAMP(time)
实际上是获取表上的time
列并将其解析为 Unix 时间戳。
总之,上面的代码将获取time
列小于当前time - $expired_period
的所有行。