// 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)
。然后我试图取消该行,它仍然被执行。当我用查询取消变量时,它仍然在页面重新加载后执行。那确实吓坏了我。
我多次在浏览器中删除了缓存,并在不同的浏览器中尝试了它。没有效果。
怎么会发生这种情况?
答案 0 :(得分:5)
在这种情况下,该字段可能设置为ON UPDATE CURRENT_TIMESTAMP
,这将使用之前的查询之一自动更新。