2016-05-06 16 views
-1

Ich schreibe eine Anfrage Programm zu überprüfen, die es automatisch Mail enthält senden, sobald eine neue Daten eingefügt werden. Ich möchte Cron verwenden, um die Anfrage zu aktivieren.Wie MySQL-Tabelle aktualisiert und senden Sie eine Mail mit cron-Job

Jedes Mal, wenn MySQL aktualisiert Ich möchte automatisch eine E-Mail erhalten.

+1

[Was haben Sie bisher versucht?] (http://whathaveyoutried.com) Bitte [bearbeiten] Ihre Frage ein zeigen, [MCVE] des Codes , dass Sie Probleme mit haben, dann können wir versuchen, zu helfen mit t Das spezifische Problem. Sie sollten auch [fragen] lesen. –

Antwort

0

würde ich folgende Lösungen vorschlagen:

1) Spalte ‚Status‘ mit Standardwert hinzufügen = ‚‘ eingesetzt und ein einfaches Programm erstellen, die minutiös Zeilen mit dem Status ‚Inserted‘ abruft und E-Mail-Benachrichtigung. Nachdem Sie eine E-Mail gesendet haben, sollten Sie den Status auf "SENDED" oder etwas Ähnliches aktualisieren.

ALTER TABLE `your_table` 
ADD COLUMN `STATUS` VARCHAR(45) NULL DEFAULT 'INSERTED'; 

Ihre Bewerbung wird von cron-Job eingeplant Daten von der Abfrage abgerufen werden sollte:

select <some_fields> 
from <your_table> 
where status = 'INSERTED'; 

<send email logic> 

update <your_table> 
set status = 'SENDED'; 
where status = 'INSERTED'; 

2) Erstellen Sie Trigger, die Informationen über neue Zeilen in separate Tabelle einfügen wird. Die nächsten Schritte sind die gleichen wie im vorherigen Ansatz.

CREATE TRIGGER save_inserted_data AFTER INSERT ON your_table 
FOR EACH ROW BEGIN 
     insert into log_table (id) 
     values (:new.id) 
END; 

<send email logic> 

delete from log_table; 

Und Sie sollten eine Logik hinzufügen, die beim Senden von E-Mails neue Zeilen berücksichtigt. Dh,

  • 3 Reihen wurde
  • eingefügt
  • Sie abrufen 3 Zeilen für E-Mail-Benachrichtigung
  • jemand neu hinzufügen eine
  • markieren müssen/löschen Nur noch 3 Zeilen (ohne neue)
+0

könnte u Plže mich mit dem –

+0

Beispiel erklären Antwort aktualisiert wird –