如何让PHP反复检查数据库的修改?
我有一个对MSSQL数据库进行更改的程序。我希望在进行这些更改时执行一些操作,例如发送电子邮件。这个程序不做这些事情,我也不能修改程序,所以我的问题是。。我可以使用PHP不断检查数据库中的更改并执行这些操作吗? 我的想法是:如何让PHP反复检查数据库的修改?,php,sql-server,database,repeat,Php,Sql Server,Database,Repeat,我有一个对MSSQL数据库进行更改的程序。我希望在进行这些更改时执行一些操作,例如发送电子邮件。这个程序不做这些事情,我也不能修改程序,所以我的问题是。。我可以使用PHP不断检查数据库中的更改并执行这些操作吗? 我的想法是: $originalDBContent = "SELECT events FROM evTable"; while(true){ $checkContent = "SELECT events FROM evTable"; while($originalDBConte
$originalDBContent = "SELECT events FROM evTable";
while(true){
$checkContent = "SELECT events FROM evTable";
while($originalDBContent == $checkContent) sleep(1);
//command below if changes made to db
mail(...);
}
它会工作吗?或者任何其他建议的程序来完成这项工作吗?不,你不能在PHP上这样做,因为如果你这样做的话
while(true){
$checkContent = "SELECT events FROM evTable";
while($originalDBContent == $checkContent) sleep(1);
//command below if changes made to db
mail(...);
}
这将导致浏览器或任何访问它的人超时,因为这将使页面继续加载
使用PHP可以做的最好的事情是执行cron任务,但为什么每次数据库更改时都需要检查?将触发器与sqlcmd结合使用应该很容易做到 这将允许您调用php命令 另一种方法是(我不确定mssql中是否存在)监视二进制日志更改日期,二进制日志显示服务器上数据的所有修改。您可以检查文件上的修改时间并跟踪 最后一个选项要求您拥有完全控制权。但在插入时,您可以运行脚本。假设您手动更改数据,则不会触发任何更改,因此所有更改都需要通过您的应用程序进行 最好的选择是trigger+sqlcmd 更多信息和示例
如果是Linux,请使用。如果是Windows,请使用。您可以在数据库中使用触发器吗?如果可以的话,把所有的变化都写到表中,我对触发器一无所知。。我可能可以添加新的表,但我不确定是否还有其他东西会使我提到的程序不稳定。我将尝试任务调度程序。使用Windows正如我所说,希望在事件表发生更改时发送电子邮件。触发器+sqlcmd,transact似乎是一种方式。但我不知道如何启动扳机,我也有时间压力。你能提供更多的信息来启动触发器或脚本吗?一个问题。我是否需要付费SQL代理或Management Studio(付费版本,非express)?