[英]How can I repeat a mysql query every 5 minutes?
I have an sql query that looks like this: 我有一个看起来像这样的sql查询:
<?php
include("settings.php");
$sql = conn->query("SELECT * FROM table LIMIT 1");
$content = $sql->fetch_assoc();
$id = $content['id'];
/* PHP Operations here. */
?>
Now, I want to be able to repeat this sql query every lets say 5 minutes, because the tables content will change. 现在,我希望能够每隔5分钟重复一次此sql查询,因为表内容将更改。 How can I do this?
我怎样才能做到这一点? Is there a way to do an sql request in a javascript or ajax script?
有没有办法在javascript或ajax脚本中执行sql请求?
如果只想刷新内容,则在settimeout()中使用AJAX调用。
Use a cron job. 使用cron作业。 If the file you are showing is "/var/www/some/file.php" then just execute the following as the user which runs the web server (for example, "www-data" or "apache"):
如果您显示的文件是“ /var/www/some/file.php”,则只需以运行Web服务器的用户身份执行以下命令即可(例如,“ www-data”或“ apache”):
{
# Will output to stdout the current user's crontab
crontab -l;
# Add a line to execute the php script every 5 minutes
echo '*/5 * * * * '"$(which php5) /var/www/some/file.php";
} | crontab - # The current user's crontab will be replaced by stdin
PHP web applications are PHP scripts which are run by the web server in response to an HTTP request. PHP Web应用程序是由Web服务器响应HTTP请求而运行的PHP脚本。 What you need in here is to run the PHP script not in response to an HTTP request but in response to a time event, say, 5 minutes have passed since the last run.
这里您需要的是运行PHP脚本,而不是响应HTTP请求,而是响应时间事件,例如,自上次运行以来已经过去了5分钟。
Well, according to the Q&A the real problem would have a solution like this: 好吧,根据问答, 真正的问题将有一个这样的解决方案:
Here you will have something like this: 在这里,您将看到以下内容:
<script type="text/javascript">
/* Have jquery included before */
function poll_the_server(){
/* Get the data from the server with ajax */
var jqxhr = $.ajax( "/bg.php" )
.always(function(){
/* Prepare the next run */
setTimeout(poll_the_server, 300);
})
.done(function(){
/* Succeded: Do whatever you want with your data */
})
.fail(function(){
/* Error: you may ask the user what to do */
});
}
/* Do the first call */
setTimeout(poll_the_server, 300);
</script>
Edit: 编辑:
http://api.jquery.com/jquery.ajax/ http://api.jquery.com/jquery.ajax/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.