Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 自动更新表格日期和时间_Php_Mysql - Fatal编程技术网

Php 自动更新表格日期和时间

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(待定) 我怎么能这样做 我想到:

假设我有一个类似于以下内容的表(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(待定)

我怎么能这样做

我想到:

  • 创建一个应该每秒执行一次的进程来更新表,但在我看来,这将是一个繁重的过程(cron)。此外,我的主机提供商不支持它
  • 触发器,但这是不可能的,因为它应该在截止日期到达时更新,而不是在我插入、更新或删除表时更新
  • 处理php代码中的不同状态。任何时候都可以请求状态,但我在代码中的很多地方都与状态打交道,这很复杂,很难保存

如果你有任何想法,请告诉我。提前感谢。

您可以创建一个视图,使用case语句将“state”列设为2(如果是1且已过期),然后直接查询该视图而不是表。然后通过其他方法定期更新表,例如更新整个表的触发器(尽管这是随机的)


或者,您可以创建访问表的存储例程,而不是在应用程序代码中写入查询,并且该存储例程可以根据需要更新“状态”。

您真的需要每秒更新一次吗?你真的需要飞机导航或监测医院滴注所需的精度吗?为什么不简单地检查读取的状态和时间戳,并在该点更新?你真的在屏幕上打印了这些信息吗?如果是,您可以运行
If
语句来检查状态是否过期。如果是,请更改状态。如果您有权在MySQL中使用create Scheduled Events,这是一个选项。我将处理代码中的条件,并使用进程每天更新一次表。谢谢,孩子们,不要在家照威利说的做。这对你的健康有害,你是对的。发生的事情是,我不知道case语句是什么,我正在研究,我认为这比处理代码上的条件要好得多。比较容易,谢谢。