我不确定为什么这不像我想的那样工作.这是一个非常简单的循环,它从mysql dm中查找值.随时我插入我希望它执行的值.
我考虑过cron作业,但有时脚本需要更长的时间,所以我不会单独启动代码.
有谁知道如何解决这个问题?
<?php
a1:
set_time_limit(0);
include_once "mysql_con.php";
$result = mysql_query("SELECT * FROM requests WHERE status='pending' ORDER BY id DESC LIMIT 1");
$num_rows = mysql_num_rows($result);
if ($num_rows == 0) {
sleep(10);
goto a1;
}
else
{
// CODE
goto a1;
}
?>
Run Code Online (Sandbox Code Playgroud)

> xkcd
您的代码将更好地重组为:
while(1) {
// run query
if( /* no rows */ ) sleep(10);
else { /* run code */ }
}
Run Code Online (Sandbox Code Playgroud)
除此之外,您可以通过SSH(使用PuTTY之类的程序)并运行命令登录服务器来启动此脚本:
/usr/bin/php your_php_script.php
Run Code Online (Sandbox Code Playgroud)
请注意,PHP的实际位置可能会有所不同,有时它会有所不同,/usr/php但如果这不起作用,您的主机应该能够帮助您找到它.
如果您没有shell访问权限,那么cron脚本将是您最好的选择 - 只需确保将脚本更改为:
// run query
while( /* get result row */ ) {
// do something
}
Run Code Online (Sandbox Code Playgroud)