Php MySQL事件调度器设置数据的过期日期,并在过期时自动更新
如何将MYSQL上的数据设置为到期日期?以及如何在过期日期从Php MySQL事件调度器设置数据的过期日期,并在过期时自动更新,php,mysql,Php,Mysql,如何将MYSQL上的数据设置为到期日期?以及如何在过期日期从User1自动删除SILVER软件包,并自动更新为免费软件包 User2和GOLD软件包的问题与User1相同 例如: 我想这样设置白银和黄金包装的到期日期: SILVER Package for 1 Month (30 days) GOLD Package for 2 Months (60 days) User1在27/1/2559 16:20购买一个SILVER软件包,该软件包已在26/2/2016 16:20从User1中删
User1
自动删除SILVER
软件包,并自动更新为免费
软件包
User2
和GOLD
软件包的问题与User1
相同
例如:
我想这样设置白银
和黄金
包装的到期日期:
SILVER Package for 1 Month (30 days)
GOLD Package for 2 Months (60 days)
User1
在27/1/2559 16:20
购买一个SILVER
软件包,该软件包已在26/2/2016 16:20从User1
中删除,然后自动更新为User1
免费软件包
User2
在15/3/2559 16:20
购买一个GOLD
套餐,该套餐已在14/5/2016 16:20从User2
中删除,然后自动更新为User2
套餐
tbl_套餐
| id | name |
---------------
| 1 | FREE |
| 2 | SILVER |
| 3 | GOLD |
tbl_成员
| id | name | package |
------------------------
| 1 | User1 | SILVER |
| 2 | User2 | GOLD |
| 3 | User3 | Free |
首先,将时间戳列添加到tbl_成员
,例如过期日期。设置列,使其默认为空。当用户升级时,在PHP代码中更新此新列
必须运行某些程序才能更改过期的软件包。虽然最有效的选择是每天或每小时运行的自动cron脚本,但您只需在用户每次登录站点时运行它即可。您希望修改过期日期在过去的tbl_成员
的每一行的包。更改package列的值package本质上与“删除”它相同。此外,您希望将过期日期设置为null,因为免费软件包永远不会过期
例如,如果过期日期在过去,此SQL应将任何成员降级为免费软件包:
UPDATE tbl_member SET package="Free",expire=null WHERE expire < now()
更新tbl_成员集package=“Free”,expire=null,其中expire
您可以创建一个cron jobs来执行此操作,它将每天检查以查找expried成员并更新它们。你可以在这里阅读希望这对你有所帮助;如果有任何不合理的地方,请告诉我。它是自动删除并将其更改为免费软件包?更改为免费软件包,实际上就是删除银/金软件包。