Php 自动更新表格日期和时间
假设我有一个类似于以下内容的表(mysql):Php 自动更新表格日期和时间,php,mysql,Php,Mysql,假设我有一个类似于以下内容的表(mysql): id int, deadline timestamp, state int 状态可以是1、2、3、4等。1:打开,2:挂起,3:批准,4:关闭,等等 截止日期有日期和时间,当达到该日期和时间时,状态应该更改。例如,如果我已插入以下记录: 在表中插入(id、截止日期、状态)值(1,'2014-08-21 2:05:13',1);(1表示开放) 当达到截止日期时,状态应自动为2(待定) 我怎么能这样做 我想到:
id int,
deadline timestamp,
state int
状态可以是1、2、3、4等。1:打开,2:挂起,3:批准,4:关闭,等等
截止日期有日期和时间,当达到该日期和时间时,状态应该更改。例如,如果我已插入以下记录:
在表中插入(id、截止日期、状态)值(1,'2014-08-21 2:05:13',1);(1表示开放)
当达到截止日期时,状态应自动为2(待定)
我怎么能这样做
我想到:
- 创建一个应该每秒执行一次的进程来更新表,但在我看来,这将是一个繁重的过程(cron)。此外,我的主机提供商不支持它
- 触发器,但这是不可能的,因为它应该在截止日期到达时更新,而不是在我插入、更新或删除表时更新
- 处理php代码中的不同状态。任何时候都可以请求状态,但我在代码中的很多地方都与状态打交道,这很复杂,很难保存
如果你有任何想法,请告诉我。提前感谢。您可以创建一个视图,使用case语句将“state”列设为2(如果是1且已过期),然后直接查询该视图而不是表。然后通过其他方法定期更新表,例如更新整个表的触发器(尽管这是随机的)
或者,您可以创建访问表的存储例程,而不是在应用程序代码中写入查询,并且该存储例程可以根据需要更新“状态”。您真的需要每秒更新一次吗?你真的需要飞机导航或监测医院滴注所需的精度吗?为什么不简单地检查读取的状态和时间戳,并在该点更新?你真的在屏幕上打印了这些信息吗?如果是,您可以运行
If
语句来检查状态是否过期。如果是,请更改状态。如果您有权在MySQL中使用create Scheduled Events,这是一个选项。我将处理代码中的条件,并使用进程每天更新一次表。谢谢,孩子们,不要在家照威利说的做。这对你的健康有害,你是对的。发生的事情是,我不知道case语句是什么,我正在研究,我认为这比处理代码上的条件要好得多。比较容易,谢谢。