【发布时间】:2013-08-11 03:01:59
【问题描述】:
当 crondate(timestamp field) 和当前时间戳匹配时,我试图每分钟更新一次表行。当两者都匹配时,我设置 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();
}
【问题讨论】:
-
这真的是表名吗? #__cronjob_run 和
crondate = NOW()会更有效 -
@Dagon 在 Joomla 中,我们必须用#__cronjob_run 编写表名。
-
你确定你的日期格式在 where 子句的两边都匹配吗?这是头痛的常见来源。不确定您在这里使用的是什么 DBms。
-
这看起来也需要匹配到第二个。尝试在执行后将 $update_queries 的内容记录到文件中,看看它实际上在做什么。
-
检查 MySQL 服务器、运行 PHP 代码的服务器以及 php.ini 文件中的时区是否与 TIMESTAMP 字段具有相同的时区。