Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Trigger z wpisami do tabeli logów, Aktualizacja tabeli logów z danymi osoby wprowadzającej zmiany
crac2003
post 24.02.2009, 09:52:40
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 17.10.2007

Ostrzeżenie: (0%)
-----


Witam

Mam takie pytanie:
Otóż mam taką przykładową bazę danych:
{Test1} [t1_ID : integer] [t1_Data : TEXT]
oraz
{Test1Log} [t1l_ID : int] [t1l_DATE : DATETIME] [t1l_User : TEXT] [t1l_Event : TEXT]

i teraz w jaki sposób przekazać informację jaki użytkownik wprowadza zmiany do tabeli Test1? Chodzi mi o to aby trigger ustawiony na before insert mógł aktualizować dane Test1Log bez konieczności wczytywania dodatkowych informacji.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
phpion
post 24.02.2009, 10:11:49
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(crac2003 @ 24.02.2009, 11:52:40 ) *
w jaki sposób przekazać informację jaki użytkownik wprowadza zmiany do tabeli Test1?

Możesz pobrać nazwę użytkownika poleceniem:
  1. SELECT USER();

jednak to zwróci nazwę użytkownika, spod którego nastapiło logowanie do MySQL. W przypadku aplikacji webowych zazwyczaj jest to jeden użytkownik więc chyba nie będzie to to, o co Ci chodzi.

Możesz jednak ustawić w PHP wartość zmiennej:
  1. <?php
  2. mysql_query("SET @user='".$user."'");
  3. ?>

i później się do niej odwoływać:
  1. SELECT @user;

Takie rozwiązanie powinno sprostać Twoim wymogom smile.gif
Go to the top of the page
+Quote Post
crac2003
post 24.02.2009, 10:22:08
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 17.10.2007

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedź. Jest naprawdę ok.
Tylko nasuwa mi się jeszcze jedno pytanie w związku z tym rowiązaniem. Co jeśli z aplikacji korzysta więcej niż 1 osoba? czy ustawienie zmiennej @user przypisze jej jakiś identyfikator połączenia aby było wiadomo z którego powinna zaczerpnąć informację czy też będzie to zmienna globalna? Pozdrawiam
Go to the top of the page
+Quote Post
phpion
post 24.02.2009, 13:26:32
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Nie. Zmienna ta będzie widoczna tylko dla aktualnego połączenia i zniknie po jego zakończeniu (czyli po zakończeniu wykonywania skryptu lub po "ręcznym" rozłączeniu z bazą).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:05