Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
766 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Executer un script si nouvelle ligne dans une table MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Executer un script si nouvelle ligne dans une table MySQL

n°2226765
ifr38
Posté le 30-04-2014 à 15:02:15  profilanswer
 

Bonjour
Je voudrais savoir si c'est possible d'exécuter un script automatiquement à chaque fois qu'une nouvelle ligne est crée dans une table MySQL?  
Pour info, je suis sur Linux, et ça serai un script php à exécuter ..  
 
Merci pour votre aide :)

mood
Publicité
Posté le 30-04-2014 à 15:02:15  profilanswer
 

n°2226778
rufo
Pas me confondre avec Lycos!
Posté le 30-04-2014 à 15:34:17  profilanswer
 

Il doit faire quoi ce script ? Parce que là, j'aurais dit d'utiliser les triggers de Mysql. Mais faut que ça soit un traitement en rapport avec la BD.
 
Si c'est pour faire autre chose (ex : envoyer un mail), il faudrait que dans toute ton appli, après chaque insert, tu appelles le script php. Mais ça suppose que ta BD ne soit modifiable que par ton appli.
 
Dernière solution, passer par le cron qui monitore périodiquement le contenu de la BD (suivant la nature du traitement, faudra régler la périodicité plus ou moins rapidement, genre 1m ou 5m...). Pour rien perdre des nouveaux enregistrements, faudra, pour chaque table, conserver le dernier ID constaté par le script php lors de la précédente exécution.
 
Concrètement, c'est quoi le besoin initial ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2226787
ifr38
Posté le 30-04-2014 à 15:53:31  profilanswer
 

Salut rufo,
 
Ce serai un script php qui récupère la ligne de la table A, traite l' attribut "message" qui est une chaine de caracteres, en découpant cette chaine a chaque espace, pour ranger chaque mots dans une variable, pour ensuite être ajouter a une table B .. Il me semble pas que les triggers puissent appeler un fichier php ...
 
Merci de m'aider :)

n°2226799
deejay59
Posté le 30-04-2014 à 16:16:28  profilanswer
 

Salut,
ta table A est alimentée uniquement par php?

n°2226800
ifr38
Posté le 30-04-2014 à 16:17:23  profilanswer
 

deejay59 a écrit :

Salut,
ta table A est alimentée uniquement par php?


 
salut,
non la table A est alimenté par rsyslog  :(

n°2226804
deejay59
Posté le 30-04-2014 à 16:29:56  profilanswer
 

Tu es capables de transposer ton script php en sql?

n°2226806
ifr38
Posté le 30-04-2014 à 16:32:07  profilanswer
 

Je n'ai toujours pas commencer ce script, j'attends d'avoir toutes les infos qui me faut avant de commencer ;)

n°2226811
deejay59
Posté le 30-04-2014 à 16:41:04  profilanswer
 

Sur ton serveur mysql:
créer un trigger:

Code :
  1. CREATE TRIGGER NOM_DE_TON_TRIGGER
  2. AFTER INSERT ON NOM_DE_TA_BDD.TableA
  3. FOR EACH ROW
  4. BEGIN
  5. DECLARE cmd CHAR(255);
  6. DECLARE result int(10);
  7. SET cmd='php /lien_relatif_du_dossier_de_ta_page_php/ta_page.php';
  8. SET result = sys_eval(cmd);
  9. END;


ca devrait fonctionner.

n°2226812
rufo
Pas me confondre avec Lycos!
Posté le 30-04-2014 à 16:43:56  profilanswer
 

Vu le traitement que tu indiques, ça doit pouvoir se faire avec des fonctions SQL de Mysql ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2226819
deejay59
Posté le 30-04-2014 à 16:49:34  profilanswer
 

après ca serait plus performant de remplancer
 

Code :
  1. DECLARE cmd CHAR(255);
  2. DECLARE result int(10);
  3. SET cmd='php /lien_relatif_du_dossier_de_ta_page_php/ta_page.php';
  4. SET result = sys_eval(cmd);


par la transcription de ton script php en sql

mood
Publicité
Posté le 30-04-2014 à 16:49:34  profilanswer
 

n°2226826
rufo
Pas me confondre avec Lycos!
Posté le 30-04-2014 à 16:58:15  profilanswer
 

Ah ben tu vois, je savais pas que Mysql pouvait lancer l'exécution d'une ligne de commande. C'est bon à savoir, ça. Merci pour l'info :jap:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2226828
deejay59
Posté le 30-04-2014 à 17:03:31  profilanswer
 

moi non plus je viens de l'apprendre suite à sa problématique grace à google   :D  
 
http://0x80.org/blog/executing-com [...] privilege/

n°2226830
rufo
Pas me confondre avec Lycos!
Posté le 30-04-2014 à 17:11:02  profilanswer
 

Ah oui, mais attend, à la lecture de ton article, je comprends qu'il faut installer une lib particulière pour Mysql. C'est donc pas avec la version de base de Mysql que tu peux faire ça ! je me disais aussi... :o
 
Edit : http://stackoverflow.com/questions [...] ql-trigger
-> en plus, c'est bien mentionné que ça introduit une grosse faille de sécurité :/


Message édité par rufo le 30-04-2014 à 17:13:41

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2226844
deejay59
Posté le 30-04-2014 à 18:46:28  profilanswer
 

oui, faut faire attention à son utilisation.
Genre si tu utilises cette commande en utilisant pour argument des valeurs inserer la c'est sur ton serveur a de grande chance de se faire hacker.

n°2227144
ifr38
Posté le 05-05-2014 à 08:28:26  profilanswer
 

Merci a vous deux pour votre aide, je vais essayer de voir pour transcrire mon script en sql mais je n'ai aucune idée de comment "decouper" mon attribut message de la table A en plusieurs variables :/
 
Edit : ça doit pouvoir se faire avec la fonction SUBSTRING() ou SPLIT_PART :p


Message édité par ifr38 le 05-05-2014 à 08:34:04

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Executer un script si nouvelle ligne dans une table MySQL

 

Sujets relatifs
Extraction données via scriptpresence raccourci bureau et le supprimer vbs script
problème pour inserer des données dans une table à partir d'un Jframecorrection de script batch
executer pls commandeExécuter une macro au changement du contenu d'une cellule sous excel
Lancer des script .vbs depuis une page HTMLPassage de paramètre entre procédure stockée et script Php
SCRIPT, detecter lettre hdd externe en batch 
Plus de sujets relatifs à : Executer un script si nouvelle ligne dans une table MySQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR