它是如何工作的?這行PHP代碼如何工作?
// Purge obsolete login attempts
$this->db->or_where('UNIX_TIMESTAMP(time) <', time() - $expire_period);
$這個 - > DB-> or_where就是笨的方法,無論是「UNIX_TIMESTAMP」和時間()的返回時間戳記,我想不通爲什麼「UNIX_TIMESTAMP」會比第二個參數少。
它是如何工作的?這行PHP代碼如何工作?
// Purge obsolete login attempts
$this->db->or_where('UNIX_TIMESTAMP(time) <', time() - $expire_period);
$這個 - > DB-> or_where就是笨的方法,無論是「UNIX_TIMESTAMP」和時間()的返回時間戳記,我想不通爲什麼「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 Date and Time Function文檔中查看它。
因此UNIX_TIMESTAMP(time)
實際上是獲取表上的time
列並將其解析爲Unix時間戳。
總之,上述代碼將獲取time
列小於當前time - $expired_period
的所有行。