我正在开发一个涉及Sever-Sent Events并使用库libSSE的项目:https://github.com/licson0729/libSSE-php
一个事件从数据库获取时间戳,一些事件使用它,然后更新数据库中的所述时间戳值。 PHP代码如下所示:
dev
它应该为更新函数提供旧值和新值,然后将更新函数发送给用户。但是如果db中的值是例如“2015-12-16 11:00:00”并且当前时间是“2015-12-16 15:11:00”,我得到这个输出:“2015-12-16 15:11:00 --- 2015-12-16 15:11:00“。
所以新值是两次而不是旧值,然后是新值。
如果我将三个查询放在一个单独的文件中并执行它们,我会得到想要的结果(“2015-12-16 11:00:00 --- 2015-12-16 15:10:00”)。 last_checked列的类型为timestamp,默认值为NULL,并且没有“on update current timestamp”属性。
有没有人知道为什么我在使用SSE时获得两次新的时间戳?
答案 0 :(得分:0)
因为timestamp
格式只会下降到几秒而不是几毫秒....而且更新显然不会花费一秒钟。尝试在更新和查询之间放置sleep(1)
以确认更新日期。
$a = mysqli_query($sql, "SELECT `last_checked` FROM `users` WHERE `name` = '".$username."';");
$a = mysqli_fetch_row($a);
mysqli_query($sql, "UPDATE `users` SET `last_checked` = now() WHERE `name` = '".$username."';");
sleep(1); //sleep for 1 second to prove my point
$b = mysqli_query($sql, "SELECT `last_checked` FROM `users` WHERE `name` = '".$username."';");
$b = mysqli_fetch_row($b);
return json_encode($a[0]."---".$b[0]);