lysy2005
9.07.2011, 09:27:18
Witam,
mam skrypt w php który po wywołaniu generuje dużo zapytam do bazy.
jestem w stanie w php jakoś wyświetlić te zapytania??
chodzi mi abym dostał pełną listę zapytań które generuje skrypt do mysql
z góry dzięki za pomoc
Adi32
9.07.2011, 09:32:45
Zapisuj gdzieś, w jakiejś tablicy, może w sesjach zapytania które wykonujesz. ja zrobiłem kiedyś klasę - singleton - do relacji z bazą która pamiętała wszystkie zapytania. Nie jest to trudne.
lysy2005
9.07.2011, 09:34:19
W własnym skrypcie ok, ale jeżeli mamy skrypt który ktoś pisał, i np: 200/500 tyś linijek kodu trudno wszystkie zapytania zapisywać...
Właśnie chodzi mi o jakiś automat, który by mi pokazał w danym momencie które zapytania są wykorzystywane mieczy php a mysql
Adi32
9.07.2011, 09:50:08
Na moją głowę, to chyba tylko logi...
http://blog.ksiazek.info/2010/10/10/gdzie-...-co-to-za-logi/Tu masz trochę informacji.
ActivePlayer
9.07.2011, 09:55:10
czy w tym skrypcie ktoś używa wszędzie mysql_query czy jest jakaś warstwa pomiędzy zapytaniami a kodem? (np. pdo). Jeśli jest używany jakiś obiekt, to w nim możesz spróbować zapisywać gdzieś sobie te dane.
lysy2005
9.07.2011, 10:25:01
mysql_query wszędzie...
Adi32
9.07.2011, 10:26:53
Być może istniałaby możliwość, dodania tabeli, czegoś w rodzaju widoku do bazy, który reagowałby na każde zapytanie. Ale nie jestem pewien czy to miałoby sens i dawałoby oczekiwane skutki.
ActivePlayer
9.07.2011, 11:05:12
jesli wszędzie jest mysql_query to w takim razie najlepsze rozwiązanie to włączenie logowania zapytań w my.cnf
http://dev.mysql.com/doc/refman/5.1/en/query-log.html
lysy2005
9.07.2011, 11:06:43
Cytat(ActivePlayer @ 9.07.2011, 12:05:12 )

jesli wszędzie jest mysql_query to w takim razie najlepsze rozwiązanie to włączenie logowania zapytań w my.cnf
http://dev.mysql.com/doc/refman/5.1/en/query-log.htmlno tak, ale jak jest dużo procesów na serwerze to zapiszą sie wszystkie zapytania a nie tylko wybrane..
a logi zapisują sie nawet bez daty do pliku.
Chyba ze da sie zapisać logi tylko z wybranej bazy?
Możesz otworzyć plik innym skryptem i RegExp'em wyszukiwać treść zapytania między nawiasami w mysql_query i je echować np.
orginalny plik:
$zmienna = 'test';
mysql_query('SELECT * FROM `123` where `id`=' . $zmienna);
i po modyfikacji:
$zmienna = 'test';
mysql_query("SELECT * FROM `123` where `id`=" . $zmienna); echo "SELECT * FROM `123` where `id`=" . $zmienna;
Adi32
10.07.2011, 10:15:19
No, dobry pomysł, mnie przyszedł taki, aby przelecieć cały serwis czymś takim (napisałem skrypt do takich celów) co by szukało w każdym pliku za pomocą preg_match_all ciągu odpowiadającemu zapytaniu i dodawało po nim jakiś wpis dodający treść tego zapytania do jakiejś sesji czy klasy.
Co do skryptu to napisałem rekurencyjną aplikację do szukania i edycji ciągu po tym jak serwer zaatakował jakiś wirus i do każdego pliku pododawał jakieś wartości. Dało się je na szczęście ująć za pomocą wyrażeń regularnych.
ActivePlayer
10.07.2011, 11:39:11
A nie latwiej bedzie wykonax te testy na localhoscie? Mam takie odczucie ze to rozwiazanie z pregami to troche na okredke.
A nie latwiej bedzie wykonax te testy na localhoscie? Mam takie odczucie ze to rozwiazanie z pregami to troche na okredke.
toaspzoo
10.07.2011, 15:49:52
można tak:
//lub
$result = "zapytanie";
muk4
10.07.2011, 16:04:05
Cytat(toaspzoo @ 10.07.2011, 16:49:52 )

Przecież takie coś nie zadziała... przynajmniej nie w taki sposób w jaki oczekuje autor wątku.
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.