php - 阻止表更新查询 20 秒。可能的?

标签 php mysql sql triggers

问题来了, 我有一个 PHP 文件每秒调用一次,持续 20 秒。如果我编写一个查询来更新一个表,它将执行 20 次。但我希望它仅在 20 次调用中更新一次。 20 秒后需要恢复表以进行进一步更新。我怎样才能做到这一点?是否有类似触发器的东西可以在一段时间内自动阻止

I have tried something so far,
  1. 我在更新当前时间戳的表中保存了一条记录,我正在检查下一次调用的时间戳,如果超过 20 秒,我将更新它,否则只是传递更新脚本。可以,但是还有更有效的方法吗?

最佳答案

有趣的方法,在 PHP 5.3 上,您可以使用 APC 缓存来存储变量 20 秒,并假设它不存在运行您的查询。随着 PHP 采用不同的缓存方法,这种情况将在 php 5.5 中发生变化。

if(!$value = apc_fetch('key')) { 
    // Run your query and store the updated key
    apc_store('key', true, 20);  
}

虽然枯燥乏味,但确实面向 future 的方法是使用 session 变量来有效地执行相同的操作,并检查其是否在 20 秒的限制内。

if(strtotime($_SESSION['timer']) > strtotime("-20 seconds")) {
    // run your query and update the timer with the update time.
    $_SESSION['timer'] = date();
}

关于php - 阻止表更新查询 20 秒。可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22323665/

相关文章:

php - 从 mysql 列中检索和回显多个值

mysql - 如何获取某个字段为 X 的唯一行列表?

php - 选择有限数量的不同行

java - ORACLE: org.hibernate.ObjectNotFoundException: 不存在具有给定标识符的行

php - 无法获得 highchart 的结果

php - 显示来自 MySQL 的卷跳过一个卷

java - 如何将两个表的数据合二为一?

php - 如何在MYSQL列中过滤写入的消息?

php - ionic + Ubuntu : connect to mysql/phpmyadmin

sql - 更新事务内的外键失败