Php 如何最好地访问mysql插入后的报警数据

Php 如何最好地访问mysql插入后的报警数据,php,mysql,triggers,Php,Mysql,Triggers,每次发生新报警时,我的系统都会在mysql数据库表中插入一个包含多列的报警数据行。需要能够在每次发生时通过电子邮件发送最新的报警数据行 我尝试使用一个触发器调用php脚本过程来查询、获取和发送最后插入的行,虽然所有操作都正常进行,但我并没有获取当前插入的报警数据,而是获取刚刚插入的报警数据之前的报警数据行。已尝试在SELECT语句末尾同时使用LIMIT 0,1和LIMIT 1,但仍无法获取最新的insert数据 我假设触发器过程调用是在报警数据实际插入数据库之前发生的。(在触发器上使用插入后)正

每次发生新报警时,我的系统都会在mysql数据库表中插入一个包含多列的报警数据行。需要能够在每次发生时通过电子邮件发送最新的报警数据行

我尝试使用一个触发器调用php脚本过程来查询、获取和发送最后插入的行,虽然所有操作都正常进行,但我并没有获取当前插入的报警数据,而是获取刚刚插入的报警数据之前的报警数据行。已尝试在SELECT语句末尾同时使用LIMIT 0,1和LIMIT 1,但仍无法获取最新的insert数据


我假设触发器过程调用是在报警数据实际插入数据库之前发生的。(在触发器上使用插入后)正在考虑使用crontab启动shell脚本,每分钟检查一次新警报,但不确定如何编写脚本,以便在每次将新警报插入数据库时只启动一次电子邮件。

在处理历史记录表时,我在触发器中得到的最后一个插入值如下所示:

CREATE DEFINER = CURRENT_USER TRIGGER `db`.`table_AFTER_INSERT` AFTER INSERT ON `table` FOR EACH ROW INSERT INTO `db`.`table_history`
(`id`,
`contactinfo`,
`ag_contact_type_fk`,
`ag_uq_pid_fk`,
`hist_entry_type`)
VALUES
(NEW.id,
NEW.contactinfo,
NEW.ag_contact_type_fk,
NEW.ag_uq_pid_fk,
"insert");
这样,每次我都会使用“NEW.xyz”获取最后插入行的值


也许这可以帮助您获取触发器中的数据。

Franco,感谢您回答我最初的问题。在我对这个问题的研究中,我见过类似的代码,但有几个问题。为什么使用createdefiner而不是createtrigger?结尾的“插入”是什么意思?通过电子邮件发送新价值观的最佳方式是什么?我可以在上面显示的代码结束时启动一个过程调用吗?