// 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
条款中做了一个呼应。当我执行该文件时,它没有显示回显输出,但会执行mysql_query($set_onlinesince)
。然后我试着去掉这行注释,它仍然被执行。当我用查询对变量进行注释时,它在页面重新加载后仍在执行。这让我很害怕。我在浏览器中删除了几次缓存,也在不同的浏览器中尝试过。没有效果。怎么会这样?
在这种情况下,字段可能被设置为ON UPDATE CURRENT_TIMESTAMP
,这将使用前面的查询之一自动更新它。