php - Sql Server 触发器和 PHP
问题描述
我在 al Sql Server 中有以下触发器
AFTER INSERT AS
BEGIN
DECLARE @exe nvarchar(255);
DECLARE @exe2 nvarchar(255);
DECLARE @idEmpl nvarchar(255);
DECLARE @fecha nvarchar(255);
DECLARE @entSal nvarchar(255);
SELECT @idEmpl = Id_de_People, @fecha = CONVERT(varchar,cast(60*60*24*(cast(Fecha as float)-25567) as int)-3600-7200), @entSal = EntSal FROM inserted;
SET @exe = 'C:\Program Files\PHP\v7.2\php.exe -f "C:\inetpub\wwwroot\marcaje_to_attendance.php" idEmpl=' + @idEmpl +' fecha='+ @fecha +' entSal='+ @entSal +'';
EXEC xp_cmdshell @exe;
SET @exe2 = '"C:\Program Files\PHP\v7.2\php.exe" -f C:\inetpub\wwwroot\attendance_bulk_2.php idEmpl=' + @idEmpl +' fecha='+ @fecha +' entSal='+ @entSal +'';
EXEC xp_cmdshell @exe2;
INSERT INTO log_trigger (log_fecha, log_id_empleado, momento_entrada, ent_o_sal) VALUES (@fecha, @idEmpl, GETDATE(), @entSal) ;
此代码调用任何插入(数据库每秒接收一些插入)到一个 php 文件,该文件接收该值以与其他系统连接。
我的问题是我的 php 没有收到任何调用,因为我为它们的任何调用写了一个日志。
我不知道如何查看触发器的 SQL Server 日志,或者触发器代码中是否有任何错误。
我将插入插入到其他表中,以了解触发器是否有效,这没关系,因为我看到了每一行的插入。
你能帮助我吗?。
谢谢
解决方案
您说插入到log_trigger
工作正常,但对 php.exe 的调用似乎没有发生。
在这种情况下,问题可能出在您的 php 文件内部,或者可能是您指定的位置不存在 php.exe 的结果。您在 SQL Server 的那个位置安装了 php.exe?
推荐阅读
- javascript - 在 Amcharts4 range.contents.fill 不适用于 Lineseries.propertiesField.fill
- node.js - 如何防止我的图书馆的消费者安装我的 devDependencies?
- javascript - React.js,在 useEffect 挂钩中,window.location.href 不会停止中断进一步的代码执行
- python - xclip 没有从 pexpect 获取标准输入,或者 pexpect 没有发送?
- c# - 使用 MailboxAddress(String) 构造函数发送带有 mailKit 过时警告的电子邮件
- bash - VSCode 打开工作区时如何运行 bash 命令或设置环境变量
- spring-cloud-gateway - Retry GatewayFilter 在 Spring Cloud Gateway 上无法按预期工作
- flutter - 屏幕加载时如何仅调用一次 bloc 事件
- pdf - 如何为 pandoc 中的代码块添加边框?
- python - 如何仅通过所有索引中的 id 从 elasticsearch 获取文档