如何自动清除表格中的数据?

我有一张桌子

it has four fields :Phone_number(primary key),City_name,Category_product and sub_Category

我正在开发基于短信网关的php应用程序。 当用户发送和SMS请求产品服务时, 他的细节将被保存在这张表中。

现在,当用户发送短信时,我会将详细信息存储在表格中 等待用户根据需要发送短信并提供更多详细信息。

现在我想要做的是: 如果用户在15分钟内没有响应,他的细节应该自动从表格中删除。 我应该如何继续?

0
额外 编辑
意见: 1
而不是删除该熵,包括一个新的列( datetime )并存储日期时间值,并与之比较?
额外 作者 hjpotter92,

3 答案

您将一列添加到您的表中,以存储它发送的时间。

然后,您必须做出选择,您可以运行cron作业来清理数据,或者清理其他用户发送短信时无效的记录等。由于您将时间与数据一起存储,您可以轻松更改15分钟后超时。

1
额外
我如何设置超时条件?我不想运行一个cron工作。我应该在创建记录时记录时间戳吗?然后再比较一下?
额外 作者 Shiven,
为此,我将不得不在服务器上连续运行一个php脚本?如果假设我有大量的记录,它将花费很多时间
额外 作者 Shiven,
谢谢,我会试试:)
额外 作者 Shiven,
您确实需要存储一个时间戳并稍后进行比较(例如time() - $ time_sent> 900),如果它返回true,则该记录早于15分钟。
额外 作者 Ben,
不,不一定。例如,您可以在每次发送其他SMS时运行该脚本。如果服务器上的负载很高,则可能需要使用垃圾收集系统。
额外 作者 Ben,
您可以使用类似于以下的内容: if((time() - $ time_sent)> = 900){deleteOldRecords(); } </代码>
额外 作者 Ben,

你必须使用一些时间表。 PHP没有任何对调度的原生支持。我会建议创建一个descktop应用程序或一个服务来监听表格以获取SMS响应。如果没有得到回应,则会删除相应的记录。你的工作将无限运行。

0
额外

如果这将是一个包含许多记录的表格,那么您应该设置一个预订表格,然后在订单完成时复制记录。这样,如果开始变慢,您可以随时清理预购表。

正如本所说,它应该有一个检查时间戳。

0
额外