Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP+MYSQL] pokaż wszystkie zapytania skryptu
Forum PHP.pl > Forum > PHP
lysy2005
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
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
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
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
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
mysql_query wszędzie...
Adi32
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
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
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.html


no 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?
muk4
Możesz otworzyć plik innym skryptem i RegExp'em wyszukiwać treść zapytania między nawiasami w mysql_query i je echować np.

orginalny plik:
  1. $zmienna = 'test';
  2. mysql_query('SELECT * FROM `123` where `id`=' . $zmienna);
  3.  
  4. mysql_query('DROP TABLE `123`);


i po modyfikacji:
  1. $zmienna = 'test';
  2. mysql_query("SELECT * FROM `123` where `id`=" . $zmienna);
  3. echo "SELECT * FROM `123` where `id`=" . $zmienna;
  4.  
  5. mysql_query("DROP TABLE `123`");
  6. echo "DROP TABLE `123`";
Adi32
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
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
można tak:

  1.  
  2. echo $result = mysql_query("zapytanie");
  3. //lub
  4.  
  5.  
  6. $result = "zapytanie";
  7. mysql_query($result);
  8. echo $result;
  9.  
muk4
Cytat(toaspzoo @ 10.07.2011, 16:49:52 ) *
  1. echo $result = mysql_query("zapytanie");


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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.