如何使用PHP跟踪数据库表中的更新?

时间:2015-03-07 14:05:24

标签: php mysql sql ajax triggers

我想问一下是否有办法使用php mysql跟踪数据库表。 我想做一些像我有一个名为post的表。现在当用户发布一些其他用户需要查看此数据的数据时。这是最新的需要在顶部查看用户。我们可以通过每隔几秒刷新div或使用ajax来做到这一点。但是我们可以使用Trigger吗?我们知道它会在执行某些事情时自动触发。因此我想知道我们可以在PHP代码中使用触发器来自动检测表中的更改。当有新帖子可用时,它需要从数据库返回数据。请给我一个简短的描述。先感谢您。

2 个答案:

答案 0 :(得分:0)

触发器在Mysql Server上执行,而不是在PHP上执行(即使它们都在同一台机器上)。

所以,我认为这不太可能 - 至少不是简单的。

考虑到entry from the MySQL FAQ on Triggers

  

23.5.11:触发器是否可以通过UDF调用外部应用程序?

     

是。例如,触发器可以在此处调用MySQL Forge提供的sys_exec() UDF:http://forge.mysql.com/projects/project.php?id=211

所以,实际上,通过一个可以启动php可执行文件/脚本的UDF函数可能会有一些问题。不是那么容易,但似乎有可能; - )

了解更多信息:

  

https://stackoverflow.com/a/1467387/3653989

答案 1 :(得分:0)

SQL触发器是服务器端执行的数据库对象。 您需要一种前端技术来刷新数据而不刷新整个页面。 您可以使用以下方式刷新页面:

<meta http-equiv="refresh" content="5">

使用PHP,您可以使用以下方式刷新页面:

header("refresh: 3;");

但是没有人会建议你使用这样的方法,因为只有在数据库发生变化之后才需要刷新页面,而不是连续。

因此,如果您已经使用PHP,则需要Javascript Push技术: 推送或服务器推送描述了一种基于Internet的通信方式,其中给定事务的请求由发布者或中央服务器发起。 (wikipedia

JavaScript轮询,长轮询,实时技术以及jquery,node.js,socket.io等javascript框架包含了许多为您提供这种可能性的实践。