mysql - 在预订系统中删除 "expired"预订的最佳方法

标签 mysql codeigniter

我正在为 CodeIgniter 中的一些学生小屋构建一个预订系统。事情开始融会贯通,但我有一个小问题需要解决。

就在付款之前,预订被添加到数据库中,日期时间字段设置为 0。该字段将在确认付款(来自 paypal)时获取当前时间。如果他们通过按下 paypal 上的取消按钮取消付款,我已经处理过了。但是如果在尝试设置支付时出现错误,或者用户关闭了窗口,或者支付超时,这些行仍然会在数据库中。我想做的是在大约 20 分钟后删除它们,如果它们在日期时间字段中没有被赋予有效值的话。

编辑:我还有一个用于插入行的时间(调用付款时)的字段。

执行此操作的最佳方法是什么?

最佳答案

添加另一个日期字段 row_created_at 并在插入行时将其设置为 NOW()

同时设置一个 cron 作业,该作业将删除 datetime-fieldnullrow_created_at 早于 20 分钟的所有行。

关于mysql - 在预订系统中删除 "expired"预订的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9082325/

相关文章:

mysql - SUM() 所有结果(无 group by 子句)

mysql - 物理/内存数据库。 (用于在我的网站上记录目的)

php - 将 Javascript 变量传递给 Codeigniter 中的 PHP Controller

mysql - 如何在 CodeIgniter 中查找具有不同 where 条件的特定行和其他列的计数

php - 我无法使用 mysql 通过内连接从数据库中选择数据

php - 'Array' 中的未知列 'where clause' 但变量是字符串,而不是数组

MySql,将日期和时间列组合成时间戳

php - $_SERVER ['QUERY_STRING' ] 在 CodeIgniter 中不起作用

php - 使用 MySQL 在 Codeigniter 中格式化日期

php - 如何从上次交易中获取值(value),但不从今天的交易中获取值(value)