Executer un script si nouvelle ligne dans une table MySQL - PHP - Programmation
Marsh Posté le 30-04-2014 à 15:34:17
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 ?
Marsh Posté le 30-04-2014 à 15:53:31
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
Marsh Posté le 30-04-2014 à 16:16:28
ReplyMarsh Posté le 30-04-2014 à 16:17:23
deejay59 a écrit : Salut, |
salut,
non la table A est alimenté par rsyslog
Marsh Posté le 30-04-2014 à 16:32:07
Je n'ai toujours pas commencer ce script, j'attends d'avoir toutes les infos qui me faut avant de commencer
Marsh Posté le 30-04-2014 à 16:41:04
Sur ton serveur mysql:
créer un trigger:
Code :
|
ca devrait fonctionner.
Marsh Posté le 30-04-2014 à 16:43:56
Vu le traitement que tu indiques, ça doit pouvoir se faire avec des fonctions SQL de Mysql
Marsh Posté le 30-04-2014 à 16:49:34
après ca serait plus performant de remplancer
Code :
|
par la transcription de ton script php en sql
Marsh Posté le 30-04-2014 à 16:58:15
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
Marsh Posté le 30-04-2014 à 17:03:31
moi non plus je viens de l'apprendre suite à sa problématique grace à google
http://0x80.org/blog/executing-com [...] privilege/
Marsh Posté le 30-04-2014 à 17:11:02
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...
Edit : http://stackoverflow.com/questions [...] ql-trigger
-> en plus, c'est bien mentionné que ça introduit une grosse faille de sécurité
Marsh Posté le 30-04-2014 à 18:46:28
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.
Marsh Posté le 05-05-2014 à 08:28:26
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
Marsh Posté le 30-04-2014 à 15:02:15
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