循环PHP脚本没有浏览器

时间:2014-01-06 15:32:25

标签: php mysql loops

我不确定为什么这不像我想的那样工作。这是一个非常简单的循环,它从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;
    }
    ?>

1 个答案:

答案 0 :(得分:5)

xkcd
&GT; xkcd

您的代码将更好地重组为:

while(1) {
    // run query
    if( /* no rows */ ) sleep(10);
    else { /* run code */ }
}

除此之外,您可以通过SSH(使用类似PuTTY之类的程序)登录服务器并运行命令来启动此脚本:

/usr/bin/php your_php_script.php

请注意,PHP的实际位置可能会有所不同,有时候会是/usr/php,但如果这不起作用,您的主机应该可以帮助您找到它。

如果您没有shell访问权限,那么cron脚本将是您最好的选择 - 只需确保将脚本更改为:

// run query
while( /* get result row */ ) {
    // do something
}