Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wylapywanie zmian na tabelach przed i po akcji
Forum PHP.pl > Forum > Bazy danych > MySQL
robert1974
witam,

Mam takie zadanie. Mam w bazie okolo 100 tabel (forum vbulletin). Z GUI forum wykonuje akcje np. Ban user albo Delete User.

Czy jest moze jakies narzedzie ktore pozwolilo by zapamietac status tabel (ilosc wierszy ale i co jest w tych wierszach) przed akcja i porownac z wartosciami po wykaniu akcji Ban czy Delete? Musze sprawdzic jakich tabel dotyka (Insert/Update/Delete) dana akcja, by potem moc zautomatyzowac i wykonac SQLem.

Dziekuje za pomoc.
DarkAbso
Jedyne co mi przychodzi na myśl to pozakładać wyzwalacze na tabele. Nie jest to raczej eleganckie rozwiązanie, ale pozwoli wykonywać akcje po UPDATE, DELETE lub INSERT wybranej tabeli. Jeżeli ma to być tymczasowe rozwiązanie w celu zdiagnozowania jakiegoś problemu to powinno się sprawdzić. W innym wypadku raczej nie polecam. smile.gif Więcej na ten temat w google.
phpion
Zrób sobie zrzut bazy przed i po zmianach (jako czysty SQL). Następnie korzystając z np. z KDiff porównaj oba zrzuty.
robert1974
dzieki, sprobuje napisac rozwiazanie w sql i php do tego. robic kopie tabel, a po akcji, porownywac zawartosci skopiowanych tabel z oryginalnymi. moze cos z tego wyjdzie.
Crozin
Nie wystarczy odpalić jakiegoś profilera czy choćby query loga, żeby zobaczyć jakie zapytania lecą do bazy danych?
damian.1923
powórzę to co @Crozin, chyba najprościej włączyć pełne logowanie sql:

general_log = 1;
general_log_file = /path/to/query.log;
Pyton_000
Ładniej będzie logować do BD:
http://stackoverflow.com/a/14403905/3732803
robert1974
dzieki za odpowiedzi. poprobuje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.