2

当 crondate(时间戳字段)和当前时间戳匹配时,我试图每分钟更新一次表行。当两者都匹配时,我设置 state = 0 但不工作。我检查了 cronjob,它每分钟都在工作和执行。

如果有人可以帮助我,我将不胜感激。

我的代码:

function runCronJob(){  
    $timestamp = date('Y-m-d H:i:s');

    $db =& JFactory::getDBO();
    $update_query = "UPDATE #__cronjob_run SET state=0 WHERE crondate = '$timestamp'";
    $db->setQuery($update_query);
    $db->query();

}

山表

4

1 回答 1

1

我不确定你为什么需要比较日期,所以我假设你想更新创建那一秒的行。

我相信您使用MySql 事件会容易得多,因为您不必担心时区,因为它是同一时间,而且基本上它本身运行一个 cron 并且您具有基本相同的选项。

另一个优点是运行起来会更快,因为不需要 PHP 运行。

由于我看到您正在使用 PHPMyAdmin,请转到您的数据库 -> 事件 -> 添加事件,然后从那里开始非常简单。

这将使您的查询类似于:

UPDATE #__cronjob_run SET state=0 WHERE crondate = now()

于 2013-08-21T12:52:59.873 回答