php长轮询使用mysql

时间:2013-12-08 22:48:46

标签: php jquery mysql ajax long-polling

我找到了一个使用php长轮询的脚本。 它使用以下代码查看文本文件是否已更改并返回内容。 这是由浏览器接收的。

如何更改此选项以阅读表并查看是否有新事件?

$filename= dirname(__FILE__)."/data.txt";

$lastmodif = isset( $_GET['timestamp'])? $_GET['timestamp']: 0 ;
$currentmodif=filemtime($filename);


while ($currentmodif <= $lastmodif) {
usleep(10000);
clearstatcache();
$currentmodif =filemtime($filename);
} 

$response = array();
$response['msg'] =Date("h:i:s")." ".file_get_contents($filename);
$response['timestamp']= $currentmodif;
echo json_encode($response);

我有一张桌子,里面有'帖子'。 POST_ID,内容,USER_ID,posted_time

我怎么知道是否有新帖?

1 个答案:

答案 0 :(得分:1)

你基本上只需要获取一个新的结果,就是这样,如果你想检查自上次执行脚本以来是否有新的结果你必须将输出保存在某个地方(这是你想要做的吗?)

有关常规MySQL查询,请参阅以下代码:

<?php
// Connect to your MySQL DB
@$db = mysqli_connect("localhost", "root", "", "database");

// Check connection and echo if an error occurs
if (mysqli_connect_errno()) {
  printf("Connection failed: %s\n", mysqli_connect_error());
  exit();
}

// Execute SQL Query, replace this with your Query (maybe the one I put in fits for your needs)
$query = mysqli_query($db, "SELECT * FROM posts");

// Transform the result into an array if your you got new elements in the MySQL DB.
$resultat = mysqli_fetch_assoc($befehl);

// Close connection
mysqli_close($db);
?>