【问题标题】:Script for cron job not working. PHP/MySQLcron 作业的脚本不起作用。 PHP/MySQL
【发布时间】:2011-12-24 20:02:55
【问题描述】:

我设置了一个 cron 作业,每 30 分钟运行一次以下脚本,基本上这个脚本从 stories 表中选择文章信息,其中字段 showing=0 并且它比计数与该文章相关的投票,投票位于 votes 表中。投票表中的 itemname_field 等于故事表中的 id 字段。 如果您需要更多关于数据库结构和投票系统的信息,我在这里进行深入描述:
Set a cron job to update article information depending on its vote values

<?php 
    mysql_connect("localhost","username","password") or die (mysql_error("There was an error in connection"));
    mysql_select_db("database") or die (mysql_error("There was an error in connection"));

    $query = "select sum(vt.vote_value) as vote_value, vt.item_name from Votes vt join stories st on st.id = vt.item_name and st.showing = 0 group by vt.item_name";
    $result = mysql_query($query); 
    while($row = mysql_fetch_array($result))
    {
        if($row['vote_value'] > 9) {
            $showing = 1;
        }
        else if($row['vote_value'] < -9) {
            $showing = 2;
        }
        else {
            $showing = 0;
        }
        $query2 = "UPDATE `stories` SET `showing` = $showing WHERE `id` = '".$row['item_name']."'";
        mysql_query($query2); 
    }
?>

谁能提出原因,为什么这个脚本不起作用?如果脚本一切正常,是否需要完成 cron 作业?

编辑:当我在浏览器中运行脚本时出现以下错误:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL

这是while($row = mysql_fetch_array($result))的哪一行

【问题讨论】:

  • 它在什么方面不起作用
  • 它没有做这项工作,我已经将几篇文章设置为显示=0,并为它们添加了大于或小于 (9, -9) 的投票值。但是在 cron 作业运行后没有任何变化。
  • 检查您的系统日志以确保脚本实际运行。还要检查你的 php 错误日志。
  • 这意味着您的查询无效。通过 mysql 客户端运行它以获取更多信息,或在 php 中回显mysql_error()
  • 除了实际运行查询外,您到处都有错误处理。检查mysql_query() 的结果并在那里附加错误处理。附带说明:如果您不打算以数字方式访问查询结果,请改用mysql_fetch_assoc()

标签: php mysql database cron


【解决方案1】:

您引用的错误消息意味着您的查询中有错误。通过 mysql 客户端运行它以获取更多信息,或在 php 中回显 mysql_error()

在这种情况下mysql_query() 返回布尔值 false,您可以使用它进行错误处理。

【讨论】:

    【解决方案2】:

    问题出在这部分:

    $query = "... from Votes vt join ...";
    

    它不应该是大写的“V”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      相关资源
      最近更新 更多