2012-12-26 6 views
19

Chcę wywołać i wykonać skrypt PHP z procedury MySQL. czy to możliwe?Czy istnieje sposób, w jaki mogę wykonać skrypt PHP z MySQL?

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

[EDIT]
jestem w rzeczywistości próbuje podnieść zdarzenie, gdy warunek jest spełniony - na przykład, gdy moja wartość pola tabeli dopasowuje aktualny czas. Następnie chcę uchwycić wydarzenie i wysłać wiadomość e-mail.

+7

No You cant !! Podziel się swoim dokładnym problemem, próbujemy znaleźć alternatywne rozwiązania. –

+3

Nie, nie możesz odzyskać skryptu php z bazy danych i wywołać funkcję eval, ale cokolwiek robisz, będzie to niewłaściwe – Linas

+1

Spróbuj spojrzeć na 'do_system()' w http://www.databasesecurity.com /mysql/HackproofingMySQL.pdf –

Odpowiedz

3

Aby rozwiązać problem możesz utworzyć tabelę dla zadań. Z procedury składowanej można umieścić w tej tabeli dowolny ciąg znaków dla zadania. Na serwerze można uruchomić skrypt PHP przez crontab. Skrypt sprawdzi tę tabelę i wykona jakąś operację.

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 ; 

source

+0

Nie masz czasu na testowanie. Czy to naprawdę działa? Czy testowałeś? Wygląda świetnie! –

Powiązane problemy