Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zadanie dla masterów - który plik wykonał funkcję...
Forum PHP.pl > Forum > PHP
mkozak
Jest taka akcja:

Mam funkcję, która jest wywoławana w kilku plikach (pliki są include-owane).
chciałbym przeprowadzić benchmark, który z plików odwołuje się do nej najczęściej i ile razy.

Najprościej rzecz ujmując - chcemy policzyć ilość zapytań do dazy danych z uwzględnieniem, które pliki wywołały ile zapytań.

Moje rozwiązanie wygląda tak:

index.php
  1. <?php
  2. include ('main.inc.php');
  3.  
  4. $sql_re1 = my_query("SELECT * FROM test", __FILE__);
  5.  
  6. include ('user_info.php');
  7.  
  8. print_r($_SESION['query']);
  9. ?>


user_info.php
  1. <?php
  2. $sql_re2 = my_query("SELECT * FROM user_profil", __FILE__);
  3.  
  4. $sql_re3 = my_query("SELECT * FROM user", __FILE__);
  5. ?>


main.inc.php
  1. <?
  2. function my_query($query, $jaki_plik){
  3. $_SESION['query'][$jaki_plik] ++;
  4. mysql_query($query);
  5. }
  6. ?>


Co daje w efekcie:
print_r($_SESION['query']);

Array(
[index.php] => 1

[user_info.php] => 2
)

Jedyna niedogodność tego rozwiązania to konieczność podania jako drugi parametr __FILE__ - zmienna przekazująca nazwę wykonywanego skryptu.

Czy ktoś ma jakiś pomysł, żeby funkcja my_query dostawała jako parametr tylko zapytanie SQL i wewnętrznie sama sprawdzała który plik ją wywołałquestionmark.gif
dr_bonzo
http://pl.php.net/manual/en/function.debug-backtrace.php w funkcji my_query()
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.