如何在MySQL / PHP中进行实时数据库轮询?

我有一个不断更新MySQL数据库的Ruby脚本。 我想实时显示“ mysql_num_rows() ”。 因此,当Ruby脚本将条目输入数据库时​​,我希望PHP脚本实时更新其mysql_num_row()计数。

我尝试使用 ,但我不认为这是最好的解决方案。

有没有人有更好的解决方案?

使用页面上的JavaScript定期调用服务器并获取一些数据。 使用jQuery库对AJAX进行跨浏览器支持,您只需执行以下操作:

 jQuery(function($){ setInterval(function(){ $.get( '/getrows.php', function(newRowCount){ $('#rowcounter').html( newRowCount ); }); },5000); // 5000ms == 5 seconds }); 

这将每隔5秒向您的服务器发出一个请求,并将您发送的任何内容的结果粘贴到id为rowcounter的元素中,例如

 

There are xx rows in the DB.

我会使用ajax更新程序来轮询打印mysql_num_row()的页面。 原型将是一个很好的解决方案: http : //www.prototypejs.org/api/ajax/updater

只有PHP和javascript,唯一的方法是不断检查更新,虽然wajiw是正确的,ajax路由将比整页刷新更少侵入/嘈杂。

它需要一个在端口/套接字上具有站立连接的应用程序(或applet)来获取更新。

如果您将拥有大量访问者,最好将行号存储到静态文件中,并使用cron运行单独的脚本(或在服务器上以无限循环运行脚本)。 然后使用JS显示来自此静态文件的编号,就像Phrogz建议的那样。 否则你可以很快超过mysql连接限制。

轮询永远不可能是实时的!

然而,Juggernaut看起来符合您的要求: http : //juggernaut.rubyforge.org 此处

但是你需要在客户端使用闪存。