cron作业的脚本不起作用。 PHP / MySQL的

时间:2011-12-24 11:28:52

标签: php mysql database cron

我设置了一个cron作业,每30分钟运行一次以下脚本,基本上这个脚本从 story 表中选择文章信息,其中字段显示= 0 并且它比计数更多与该文章相关的投票,投票位于投票表中。投票表中的 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))

2 个答案:

答案 0 :(得分:1)

问题出在这一部分:

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

它不应该是大写“V”。

答案 1 :(得分:1)

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

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