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

时间:2009-04-13 08:21:50

标签: php mysql

我想知道如果使用PHP和MySQL将新记录插入数据库时​​如何触发通知。

6 个答案:

答案 0 :(得分:5)

最简单的事情可能是每隔几秒轮询数据库并查看是否插入了新记录。由于DB中的查询缓存,这不应该大大影响数据库性能。

答案 1 :(得分:4)

MySQL现在有触发器和存储过程,但我不相信他们有任何通知外部进程的方法,所以据我所知,这是不可能的。您必须每隔一秒左右轮询数据库以查找新记录。

即使是这样,这也假设你的PHP进程是长寿的,这样它就可以随时出现以便显示记录。鉴于大多数PHP用于代码运行的网站,然后尽快退出,目前还不清楚这是否与您拥有的内容兼容。

答案 2 :(得分:3)

您可以创建一个触发器,而不是在发生更新时运行。可以使用UDF(用户定义的函数)运行/通知外部进程。没有任何内置方法可以这样做,所以这是一个加载UDF插件的情况,它会为你做。

Google为'mysql udf sys_exec'或'mysql udf ipc'。

答案 3 :(得分:2)

如果所有数据库更改都是由PHP生成的,我会为mysql_query创建一个包装器函数,如果查询类型是INSERT,REPLACE,UPDATE或DELETE,我会调用一个函数来发送相应的电子邮件。

编辑:我忘了提,但你也可以做以下事情:

if (mysql_affected_rows($this->connection) > 0)
{
    // mail(...)
}

答案 4 :(得分:0)

有一天我在MySQL论坛上询问是否存在像Firebird或Interbase这样的事件在MySQL中我看到有人回答是(我真的不确定)

检查一下:http://forums.mysql.com/read.php?84,3629,175177#msg-175177

答案 5 :(得分:-1)

使用存储过程和触发器可以相对容易地完成。我创建了一个“实时视图”屏幕,其中有一个滚动显示,使用事件表中的新事件进行更新。它可能有点繁琐,但一旦它快速运行。

相关问题