Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]logi
kamilo818
post
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.01.2014

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


Mym pytanie na temat logow.
Chciałbym aby zapisywały mi się wszystkie działania na bazie danych. Tzn jeśli użytkownik dodał rekord -> log, jeśli usunął -> log, jeśli jakaś operacja się nie powiodła -> log.

Aktualnie robię to tak ze w funkcji która wykonuje operacje na bazie mysql mam kolejna funkcje addLog() która w zależności od tego czy operacja zwróciła false czy true dodaje odpowiedni rekord do bazy.
Dodawana tam są informacje : kto, kiedy, do jakiej tabeli, jaka akcja ( dodanie, usunięcie ), wartość na jaka miała być zmieniona.

W sumie działa to jak oczekuje. Ale może jest jakaś wbudowana funkcja mysql czy php która dzięki której lepiej można gromadzić logi. Albo czy można jakoś to lepiej napisać ? W sensie czy moje podejście do tematu nie jest błędne .
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rad11
post
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Uzyj do tego wyzwalaczy.

  1. DROP TRIGGER IF EXISTS `NAZWA_WYZWALACZA`;
  2. SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
  3. DELIMITER //
  4. CREATE TRIGGER `NAZWA_WYZWALACZA` AFTER UPDATE ON `NAZWA_SLEDZONEJ_TABELI` FOR EACH ROW BEGIN
  5.  
  6. IF (@user_id IS NULL ) THEN
  7. SET @user_id=0;
  8. END IF;
  9.  
  10. IF OLD.NAZWA_SLEDZONEGO_POLA1<> NEW.NAZWA_SLEDZONEGO_POLA1 THEN
  11. INSERT INTO logs (user_id,object,object_field,object_id,new_value,old_value,date) VALUES (@user_id,'rounds_country','name',OLD.id,NEW.name,OLD.name,NOW()); -- DEFINICJA CO ZAPISUJESZ W TABELI DZIENNIKA
  12. END IF;
  13.  
  14. END//
  15. DELIMITER ;
  16. SET SQL_MODE=@OLDTMP_SQL_MODE;


w phpie ustawiasz tylko user_id

  1. set @user_id = TUTAJ NUMER ID USERA


Ten post edytował rad11 1.02.2015, 15:19:14
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 18:47