我需要编写一个应用程序,每 10 秒检查一次来自外部服务器的数据库,以查看是否有新数据。目前,我有一个 javascript,它通过比较两个 JSON(旧 JSON 和从服务器获取的新 JSON)以及它是否提醒用户来检查数据是否已更改服务器。但这不是我在这个应用程序中需要的。仅当数据是新的而不是更改时才应提醒用户。
我在想也许我可以用一个查询 MYSQL 的 PHP 代码来做到这一点,如果查询 num_results 是 0 循环,直到用户收到通知时 num_results 大于 0。在这个应用程序中,新数据是在 0.1 秒还是 10 秒内可供用户使用并不重要,只要用户得到它。这就是我尝试进行 MYSQL 检查的方式,但它不起作用:
<?php
include 'config.php';
if(isset($_GET['ID'])) {
$maxLoop = 20;
while($maxLoop--) {
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$sth = $dbh->prepare('select * from testit where id = :id');
$sth->bindParam(':id',$_GET['ID'],PDO::PARAM_INT);
$sth->execute();
if($sth->rowCount()>0) {
$results = $sth->fetchAll(PDO::FETCH_OBJ);
echo '{"key":'. json_encode($results) .'}';
exit; // Found new data, end loop and script
}
} catch(PDOException $e) {
break;
}
sleep(3);
} // end while
} // end if
那么如何更改此代码以使其工作,或者我应该尝试编写一些可以做到这一点的javascript?如果是这样,我如何检查数据是否是新的,而不是仅仅检查它是否已更改?