【问题标题】:mysql trigger with php scriptmysql 用 php 脚本触发
【发布时间】:2018-08-22 23:42:57
【问题描述】:

我有下一个 mysql 触发器:

DELIMITER @@

CREATE TRIGGER Test_Insert
BEFORE INSERT ON sat_clientLocation
FOR EACH ROW 
BEGIN
DECLARE cmd CHAR(255);
DECLARE result int(10);
SET cmd=CONCAT('/usr/bin/php ', '/var/www/html/poi/insertTest.php' , NEW.idLocation);
SET result = sys_exec(cmd);

END;
@@
DELIMITER ; 

可以在我的 php 文件中使用 NEW.idLocation 吗? 我尝试了一些方法,但不起作用。

【问题讨论】:

  • 添加一些关于您的查询的解释
  • $sql ="SELECT txPostCode, id FROM users WHERE id=(SELECT idClient FROM sat_clientLocation where idLocation= NEW.idLocation)";
  • 这是不正确的,我把 idLocation= NEW.idLocation 因为我想在那里使用 NEW.idLocation
  • “在我的 php 文件中使用 NEW.idLocation”是什么意思?能否添加已有的 PHP 代码?
  • “我尝试了一些方法,但不起作用。”什么不起作用?因为sys_exec 不是 MySQL 的开箱即用功能,我相信它有一个插件。您可能需要使用/usr/bin/php -f 而不是 -f 选项代表文件执行。

标签: php mysql triggers


【解决方案1】:

据此solution:

SET cmd=CONCAT('/usr/bin/php ', 
               '/var/www/html/poi/insertTest.php?location=' ,
               NEW.idLocation);

这将作为$_GET[] 变量传递给您的脚本:

<?php
echo $_GET['location'];
?>

【讨论】:

  • php exec 看不到 php 文件。为什么?
猜你喜欢
  • 2010-11-30
  • 1970-01-01
  • 2016-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多