【问题标题】:MYSQL trigger that externally launches a PHP script从外部启动 PHP 脚本的 MYSQL 触发器
【发布时间】:2016-02-28 22:58:08
【问题描述】:

我目前正在尝试使用 mysql 触发器来启动 php 脚本。启动脚本时,该脚本会从特定网站检索数据,并将其放入另一个表中。我已经测试了脚本,当我使用 php5 运行它时,它目前可以工作。我还正确安装了 lib_mysqludf_sys,并将正确的文件夹移动到 mysql 的插件文件夹中。当我创建触发器时,我没有收到任何错误。它只是不会运行我的 php 脚本。我哪里出错了,我该如何解决?

DELIMITER $$
CREATE TRIGGER getFriends
    -> AFTER INSERT ON tbluser
    -> FOR EACH ROW    
    -> BEGIN
    ->   DECLARE RESULT INT;
    ->   SET RESULT = sys_exec('php5 /var/www/html/getFriends.php');
    ->END$$;
DELIMITER ;

【问题讨论】:

    标签: php mysql triggers mysql-udf


    【解决方案1】:

    确认您使用的是正确的插件文件夹:

    SHOW VARIABLES LIKE 'plugin_dir';
    

    重新创建函数:

    DROP FUNCTION IF EXISTS sys_exec;
    CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';
    

    确保您使用的是可执行文件的完整路径:

    SET RESULT = sys_exec('/usr/bin/php5 /var/www/html/getFriends.php');
    

    并确保任何运行 MySQL 的用户都有权访问此脚本,并执行它正在执行的任何操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      • 2018-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多