编程巫毒?评论代码已执行

时间:2012-12-21 13:25:59

标签: php html

// Get Id, Streamanbieter und StreamId
$sql = mysql_query("SELECT `Id`,`Anbieter`,`StreamId`,`Online` FROM `streams`");

// Aktualisiere streams
while($row = mysql_fetch_object($sql)) {
    $id              = $row->Id;
    $anbieter        = $row->Anbieter;  
    $streamid        = $row->StreamId;
    $ison            = $row->Online;
    $set_online      = "UPDATE streams Set Online = '1' WHERE Id = $id";
    $set_offline     = "UPDATE streams Set Online = '0' WHERE Id = $id";
    //$set_onlinesince = "UPDATE streams SET Online_since = current_timestamp WHERE Id = $id AND Online_since = '0000-00-00 00:00:00'";
    $viewers         = get_viewers($streamid, $anbieter);
    $update_viewers  = "UPDATE streams Set Viewers = $viewers WHERE Id = $id";
    $set_zero        = "UPDATE streams Set Viewers = 0 WHERE Id = $id";
    $set_datezero    = "UPDATE streams Set Online_since = '0000-00-00 00:00:00' WHERE Id = $id";
    if(get_online($streamid, $anbieter) == true) {
        if($ison == 0) {
            //mysql_query($set_onlinesince);
        }
        mysql_query($set_online);
        mysql_query($update_viewers);   
    }
    else {
        mysql_query($set_offline);
        mysql_query($set_zero);
        mysql_query($set_datezero); 
    }
}

查看注释行$ set_onlinesince。我遇到了mysql_query($set_onlinesince)几乎一直被执行的问题,因此我创建了IF子句并在Where子句中添加了一个附加语句。它大部分时间都被执行了。 之后,我对IF子句进行了回音。当我执行文件时,它没有显示echo输出,但会执行mysql_query($set_onlinesince)。然后我试图取消该行,它仍然被执行。当我用查询取消变量时,它仍然在页面重新加载后执行。那确实吓坏了我。 我多次在浏览器中删除了缓存,并在不同的浏览器中尝试了它。没有效果。 怎么会发生这种情况?

1 个答案:

答案 0 :(得分:5)

在这种情况下,该字段可能设置为ON UPDATE CURRENT_TIMESTAMP,这将使用之前的查询之一自动更新。