20

MySQL プロシージャから PHP スクリプトを呼び出して実行したいと考えています。これは可能ですか?

CREATE PROCEDURE simpleproc (OUT param1 INT)
    BEGIN
         Call my php script here
    END//

[編集]
実際、条件が満たされたときにイベントを発生させようとしています。たとえば、テーブル フィールドの値が現在の時刻と一致する場合などです。次に、イベントをキャプチャしてメールを送信します。

4

3 に答える 3

20

可能です。方法の説明については、MySQL FAQ を参照してください。

トリガーは、UDF を介して外部アプリケーションを呼び出すことができますか?

しかし、これに頼る必要がある場合は、設計が悪い可能性があります。

于 2012-12-26T12:03:50.703 に答える
12
DELIMITER @@

CREATE TRIGGER Test_Trigger
AFTER INSERT ON MyTable
FOR EACH ROW
BEGIN

DECLARE cmd CHAR(255);
DECLARE result int(10);
SET cmd=CONCAT('/usr/bin/php ', '/home/test/beta/demo.php');
SET result = sys_exec(cmd);

END;
@@
DELIMITER ;

ソース

于 2012-12-26T12:22:13.477 に答える
3

問題を解決するために、タスクのテーブルを作成できます。ストアド プロシージャから、タスクの任意の文字列をこのテーブルに入れることができます。サーバーでは、crontab で PHP スクリプトを実行できます。スクリプトはこのテーブルをチェックして何らかの操作を行います。

于 2012-12-26T12:21:25.980 に答える