簡體   English   中英

如何使用php從mysql表中刪除早於30分鍾或24小時的數據

[英]How to delete data which is older than 30 minutes or 24 hours from mysql table using php

我想刪除數據行,其中插入數據的時間Column is called Created時間的Column is called Created比當前時間早30分鍾或24小時。

我瀏覽了整個網站,他們繼續建議這樣做:

mysql_query("DELETE FROM ytable WHERE Created < (NOW() - INTERVAL 30 MINUTES);",$db_con);


或類似的東西,但它永遠行不通。

代碼的哪一部分是錯誤的。 請幫忙。

這比什么都提供更多信息,也許也可以回答您的問題。 我正在嘗試擴大我在上面的長評論。 這就是我所做的。 這不是聖經,個人喜好占上風。

在您的MySQL表中,使創建的對象為INTEGER,甚至VARCHAR也可以。 使用PHP生成創建的時間(1970年的一連串數字)。 這樣生成:

$currentTime = time(); // eg 1439823230

前提是您的INSERT查詢中也使用了此方法,但前提是它們也通過PHP引起。

現在,您也可以為此考慮時區,但這將再次取決於您的首選項和/或服務器位置。

現在,當您的數據庫中有大量項目時,您始終可以創建自己的查詢,查詢時間的長短取決於您要從中提取數據的時間。 例如:

$twentyFourHoursAgo = ($currentTime - 60*60*24);

#Example Query:
SELECT * FROM whatever_table WHERE created > $twentyFourHoursAgo

上面的示例將返回過去24小時內的所有內容。 根據需要乘以您的時間。 另外,請確保綁定您的參數,並且不要按照上面的偽類似示例所示對它們進行硬編碼。


這是一個有用的資源: http : //www.phptherightway.com/

具體來說: http : //www.phptherightway.com/#pdo_extension

您可以使用DATE_SUB:

.. where Created < DATE_SUB(NOW(), INTERVAL 30 MINUTE)

我相信您只需要從MINUTES中刪除“ S”即可:

mysql_query("DELETE FROM ytable WHERE Created < (NOW() - INTERVAL 30 MINUTE);",$db_con);

$ time = date('YmdHis',time()-1800);

$ query = mysql_query($ db_con,“從ytable中刪除date_time <'$ time'”);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM