Variable session (PHP) et triggers (MySQL)
dominique
-
flokocha Messages postés 1510 Date d'inscription Statut Membre Dernière intervention -
flokocha Messages postés 1510 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis actuellement en train de réaliser des triggers pour historiser automatiquement les modifications faites sur ma base de données.
Cette base de données est accessible par plusieurs utilisateurs via des comptes utilisateurs.
C'est pourquoi j'ai besoin de récupérer $SESSION pour la stocker dans mes tables d'historisation.
Je souhaiterai savoir si c'est possible d'utiliser $SESSION dans un trigger ? Et comment ?
Merci pour votre aide.
Je suis actuellement en train de réaliser des triggers pour historiser automatiquement les modifications faites sur ma base de données.
Cette base de données est accessible par plusieurs utilisateurs via des comptes utilisateurs.
C'est pourquoi j'ai besoin de récupérer $SESSION pour la stocker dans mes tables d'historisation.
Je souhaiterai savoir si c'est possible d'utiliser $SESSION dans un trigger ? Et comment ?
Merci pour votre aide.
A voir également:
- Variable session (PHP) et triggers (MySQL)
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Jeux vidéo
2 réponses
Salut,
Tout d'abord une petite précision :
"Cette base de données est accessible par plusieurs utilisateurs via des comptes utilisateurs."
Des comptes utilisateurs à quel niveau ? Au niveau de ton application ou au niveau de MySQL ?
Tout d'abord une petite précision :
"Cette base de données est accessible par plusieurs utilisateurs via des comptes utilisateurs."
Des comptes utilisateurs à quel niveau ? Au niveau de ton application ou au niveau de MySQL ?
Oui excuse moi, je ne l'ai pas précisé.
Ce sont des comptes utilisateurs au niveau de mon application.
C'est pour ça que je voudrais récupérer la variable $_SESSION['id_user'] pour pouvoir la stocker dans ma table historique. Et cela, grâce à des triggers. Est-ce possible tu penses ?
Ce sont des comptes utilisateurs au niveau de mon application.
C'est pour ça que je voudrais récupérer la variable $_SESSION['id_user'] pour pouvoir la stocker dans ma table historique. Et cela, grâce à des triggers. Est-ce possible tu penses ?
Je ne suis pas un spécialiste des triggers, mais je vois mal comment à leur niveau ils pourraient avoir directement accès à cette info si elle n'est pas directement présente en base.
La solution qui me parait davantage envisageable est de stocker le contenu de ton $_SESSION['id_user'] dans un champ de la table concernée par l'historisation.
Mais dans tous les cas à mon sens cette info doit forcément être stockée quelque part en base par ton application elle-même si tu veux pouvoir y accéder par la suite depuis tes triggers.
La solution qui me parait davantage envisageable est de stocker le contenu de ton $_SESSION['id_user'] dans un champ de la table concernée par l'historisation.
Mais dans tous les cas à mon sens cette info doit forcément être stockée quelque part en base par ton application elle-même si tu veux pouvoir y accéder par la suite depuis tes triggers.
Je me suis mal exprimé, ce que je voulais dire c'est qu'il faut stocker le contenu de $_SESSION['id_user'] dans la table visée par l'historisation, ou sinon dans une table spécifique qui fera le lien entre le user id et la ligne de la table concernée.
Et ensuite ton trigger peut utiliser cette donnée pour la stocker dans une table d'historisation.
Ex : tu as une table de la structure suivante que tu veux historiser via un trigger :
Tu peux par exemple la transformer en cette structure :
Et faire insérer dans last_edit par ton application le login de l'utilisateur à l'origine de l'update qui a lieu sur une ligne.
Ainsi si par exemple "machin" intervient via ton appli et change le code de l'id 85 pour le code 400, ta table contiendra alors ceci :
Et si ton trigger vise à tracer les changement de code sur cette table, il pourra ainsi facilement construire une table d'historisation telle que celle-ci :
Et ensuite ton trigger peut utiliser cette donnée pour la stocker dans une table d'historisation.
Ex : tu as une table de la structure suivante que tu veux historiser via un trigger :
| id | nom | code | ------------------------------ | 85 | toto | 520 |
Tu peux par exemple la transformer en cette structure :
| id | nom | code | last_edit | --------------------------------------------- | 85 | toto | 520 | loulou |
Et faire insérer dans last_edit par ton application le login de l'utilisateur à l'origine de l'update qui a lieu sur une ligne.
Ainsi si par exemple "machin" intervient via ton appli et change le code de l'id 85 pour le code 400, ta table contiendra alors ceci :
| id | nom | code | last_edit | --------------------------------------------- | 85 | toto | 400 | machin |
Et si ton trigger vise à tracer les changement de code sur cette table, il pourra ainsi facilement construire une table d'historisation telle que celle-ci :
| id | tableid | old | new | ts | user | ------------------------------------------------------------------------- | 1 | 85 | 0 | 520 | 2012-08-14 09:30:00 | loulou | | 2 | 85 | 520 | 400 | 2012-08-14 12:38:00 | machin |