我正在为 CodeIgniter 中的一些学生小屋构建一个预订系统。事情开始融会贯通,但我有一个小问题需要解决。
就在付款之前,预订被添加到数据库中,日期时间字段设置为 0。该字段将在确认付款(来自 paypal)时获取当前时间。如果他们通过按下 paypal 上的取消按钮取消付款,我已经处理过了。但是如果在尝试设置支付时出现错误,或者用户关闭了窗口,或者支付超时,这些行仍然会在数据库中。我想做的是在大约 20 分钟后删除它们,如果它们在日期时间字段中没有被赋予有效值的话。
编辑:我还有一个用于插入行的时间(调用付款时)的字段。
执行此操作的最佳方法是什么?
最佳答案
添加另一个日期字段 row_created_at
并在插入行时将其设置为 NOW()
。
同时设置一个 cron 作业,该作业将删除 datetime-field
为 null
且 row_created_at
早于 20 分钟的所有行。
关于mysql - 在预订系统中删除 "expired"预订的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9082325/