CRON无法正常工作

时间:2012-05-08 00:53:33

标签: php cron

我将以下php代码设置为作为CRON作业运行。它每天运行一次,永远不会返回错误,所以我认为它运行正常。问题是,没有从我的数据库中删除行!

我已经测试了php和变量的工作原理。我已经测试了我的查询,这也有效,所以我不知所措......

<?php
$isCLI = ( php_sapi_name() == 'cgi-fcgi' );

if (!$isCLI)
    die("cannot run! sapi_name is ".php_sapi_name());
exit;

//Connect to DB
mysql_connect("xxxxxx.com", "xxxxxxxxxx", "xxxxxxxxxxxx") or die(mysql_error());
mysql_select_db("xxxxxxxxxxx") or die(mysql_error());

//Get today's date
$todayis = date("Y-m-d");
$todayis = strtotime(date("Y-m-d", strtotime($todayis)) . " -4 hours");
$todayis = date('Y-m-d', $todayis);

//Delete rows in userContests where reminder is less than or equal to today's date
mysql_query("DELETE FROM userContests WHERE reminder <= '$todayis';") or die(mysql_error());
?>

有人可以向我解释为什么行不会删除吗?

2 个答案:

答案 0 :(得分:1)

如果这是整个脚本,我会说你忘记了连接到数据库。

修改:这似乎是问题所在:

if (!$isCLI)
    die("cannot run! sapi_name is ".php_sapi_name());
exit;

转换为:

if (!$isCLI) 
{
    die("cannot run! sapi_name is ".php_sapi_name());
}

exit;

所以基本上你总是在第6行停止你的脚本,之后什么都不会执行。

答案 1 :(得分:0)

如果是CRON作业,则应使用PHP-CLI而不是PHP-CGI。您可以将其添加到文件的顶部以进行正确的检查。

<?php if(PHP_SAPI != 'cli') throw new Exception('Not in CLI mode!');

...