2013-03-26 56 views
0

本质自动执行PHP脚本,只要更改数据库

我有一个表在我的数据库(SQL Server),并与数据库进行通信,以影响它的WCF服务。我的服务器上也有一个PHP脚本。现在每当我的表添加,修改或删除一些数据时,我希望我的PHP脚本自动执行。

及其应用

我对几乎完成了一个移动应用程序的工作。现在我需要实现推送通知功能。即每当数据库发生变化时,我必须运行配置为向用户推送通知的服务器端脚本。

+0

我仍然错过了展示自己的努力和看到答案之一的答案,我将举出这个问题。 http://stackoverflow.com/questions/15637692/execute-php-script-automatically-whenever-database-changes/15637792?noredirect=1#comment22186517_15637744 – Luceos 2013-03-26 13:12:56

+0

我设法找到一个脚本来推送通知..但现在我站无法找到我可以在数据库更改上执行脚本的方式? – Legolas 2013-03-28 03:59:39

回答

0

你不会说你正在使用什么RDBMS,但无论它是什么,你都需要阅读关于“触发器”的文档。这应该给你所有你需要知道的。

+0

我们使用SQLSERVER ///// 上面所说的触发器概念的任何链接或例子来调用DB更新的PHP脚本? – Legolas 2013-03-26 13:03:55

+1

你就像我一样能够像SQLSERVER TRIGGERS一样输入Google! – 2013-03-26 13:06:01

+0

jus lazzyyyyyyy – Legolas 2013-03-26 13:10:55

0

推送服务应该在将数据添加到数据库的层中实现。数据库仅用于存储不用于执行代码的信息。因此,为了创建推送通知,您需要一个接收更新的接口,将其发送到数据库并将其推送给用户。

看到你的问题,我当然不希望你的应用程序直接添加信息到数据库,而没有一些验证传入信息的图层。这是一个直接的安全风险。

一个模型的一个解决办法是:

附录 - >发送信息 - >网站 - >分析以PHP /其他代码语言请求 - >插入在数据库 - >推送消息提供给客户。

+0

yes.as我已经提到我有一个wcf服务,那是与DB通信的层..所以你说我必须在WCF中做些什么来接收更新,然后执行php脚本? – Legolas 2013-03-26 13:07:26

+0

是的,只要你集中发送推送,你会没事的。我认为对数据库进行轮询(无理由)以获取信息并将其发送给客户是不明智的。 还要确保接收服务器推送,而不是发送应用程序;由于安全原因。 – Luceos 2013-03-26 13:09:25

+0

我们的WCF服务正在被两个用户界面使用 - 桌面和移动..因此,我无法在WCF中做任何更改...我强迫触发执行DB脚本上的PHP脚本... – Legolas 2013-03-26 13:13:21

0

大多数情况下,这是通过使用cron(或另一个调度程序)在特定时间间隔(例如每分钟)检查数据库来查找新工作并进行处理来完成的。但是,这种设计只会让你感到目前为止,下一个阶段将是使用消息队列(比如gearman,ZeroMQ等)。

您可能可以使用触发器进行操作,但通常不应将数据库视为队列。

+0

我完全陌生的所有这些东西“Cron”“齿轮工”“ZeroMQ”! U告诉触发器被排除..因此,我的选择发送通知给用户当我的数据库更改! – Legolas 2013-03-28 04:01:57