数据库更改的实时更新通知MYSQL PHP

10

我想知道如何使用PHP和MySQL,在数据库插入新记录后触发通知。

6个回答

6

您可以创建一个触发器,当更新发生时运行。使用用户定义函数(UDF)可以运行/通知外部进程。没有任何内置的方法来实现这一点,因此需要加载一个UDF插件来完成这项工作。

搜索“mysql udf sys_exec”或“mysql udf ipc”了解更多信息。


5

最简单的方法可能是每隔几秒钟轮询数据库,查看是否已插入新记录。由于数据库中的查询缓存,这不应对数据库性能产生重大影响。


4
MySQL现在已经具备触发器和存储过程的功能,但我不认为它们有任何通知外部进程的方式,因此据我所知这是不可能的。您需要每秒轮询数据库以查找新记录。
即使可以实现,这也假设您的PHP进程是长时间运行的,以便它可以等待记录出现。鉴于大多数PHP用于运行网站,其中代码尽可能快地运行并尽快退出,因此不清楚它是否与您拥有的兼容。

显然是可能的,但需要某种插件: http://dev.mysql.com/doc/refman/5.0/en/faqs-triggers.html#qandaitem-22-5-1-10 - v3.

2
如果您的数据库更改都是由PHP完成的,我建议创建一个mysql_query的包装函数,如果查询类型是INSERT、REPLACE、UPDATE或DELETE,则调用一个函数发送相应的电子邮件。
编辑:我忘记提到,您还可以执行以下操作:
if (mysql_affected_rows($this->connection) > 0)
{
    // mail(...)
}

0

-1

这可以相对容易地通过使用存储过程和触发器来完成。我创建了一个“实时视图”屏幕,它具有滚动显示功能,可随着从我的事件表中获取的新事件进行更新。它可能有点棘手,但一旦运行起来就很快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接