从mssql触发器运行php脚本

时间:2012-03-15 16:11:09

标签: php sql sql-server triggers

如何在MSSQL触发器中运行php脚本(运行REST)命令?

我需要在用户登录后立即从远程Web服务运行REST命令。

1 个答案:

答案 0 :(得分:3)

您确定要在数据库层中执行此操作吗?

您希望您的数据库事务在REST请求返回时等待(并保持锁定)吗?如果您的网络服务运行缓慢并且1分钟后超时,会发生什么?

可能但请再次谨慎使用。

在SQL Server中,有一个名为XP_CMDSHELL的扩展存储过程,它允许您在命令行上运行脚本。 http://msdn.microsoft.com/en-us/library/ms175046.aspx

默认情况下已禁用,但您可以这样启用它:

EXEC sp_configure 'show advanced options', 1
GO
EXEC sp_configure'xp_cmdshell', 1  
GO

然后在你的触发器中,你可以调用你的脚本:

xp_cmdshell 'C:\path\to\php\php.exe -f C:\Path\to\your\script.php'

如果必须在数据库中执行此操作,我强烈建议您将php脚本移植到.net语言并将其作为CLR存储过程执行。这样会更安全,不太可能导致问题。