我想知道如何使用PHP和MySQL,在数据库插入新记录后触发通知。
您可以创建一个触发器,当更新发生时运行。使用用户定义函数(UDF)可以运行/通知外部进程。没有任何内置的方法来实现这一点,因此需要加载一个UDF插件来完成这项工作。
搜索“mysql udf sys_exec”或“mysql udf ipc”了解更多信息。
最简单的方法可能是每隔几秒钟轮询数据库,查看是否已插入新记录。由于数据库中的查询缓存,这不应对数据库性能产生重大影响。
if (mysql_affected_rows($this->connection) > 0)
{
// mail(...)
}
有一天我在MySQL论坛上问是否存在像Firebird或Interbase中的事件一样的东西,我看到有人回答是的(我真的不确定)
请查看:http://forums.mysql.com/read.php?84,3629,175177#msg-175177
这可以相对容易地通过使用存储过程和触发器来完成。我创建了一个“实时视图”屏幕,它具有滚动显示功能,可随着从我的事件表中获取的新事件进行更新。它可能有点棘手,但一旦运行起来就很快。