Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] unset i ilosc zapytan do bazy danych
tommy4
post
Post #1





Grupa: Zarejestrowani
Postów: 288
Pomógł: 12
Dołączył: 2.12.2005

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


Mam 2 pytania:

1)
Co daje unset. Wiem, że dzięki temu zwalnia się pamięć, ale np. czy coś mi to da, jeżeli pod koniec wykonywania skryptu dołącze coś takiego:
  1. <?php
  2. foreach(array_keys(get_defined_vars()) as $var)
  3. {
  4. unset($$var);
  5. }
  6. unset($var);
  7. ?>

I czy pozostawione zmienne, np. $db_password można jakoś odczytać, itd. z pliku .php, czy nie muszę się martwić o wyjście zmiennych.

2)
Hmm, ilość zapytań do bazy danych. Istnieje coś takiego na forach np. phpbb, ze wyswietla ilosc zapytan do bazy danych. No ok, ale jak to jest liczone? bo jak jest np. 30 zapytan gora na takim forum, to nie wiem ile jest np. w moim cms-ie. (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif) Hmm, dajmy na to, ze jest taki skrypt:
  1. <?php
  2. $sql = "SELECT * FROM news";
  3. $sqlq = @mysql_query($sql);
  4. if($sqlq)
  5. {
  6. while($row = @mysql_fetch_array($sqlq))
  7. {
  8. $content = $row['content'];
  9. $author = $row['author'];
  10. $sql2 = "SELECT * FROM users WHERE id = $author";
  11. $sqlq2 = @mysql_query($sql2);
  12. if($sqlq2)
  13. {
  14. $author = @mysql_fetch_assoc($sqlq2);
  15. $nick = $author['nick'];
  16. }
  17. else
  18. {
  19. [.....blebleble....]
  20. }
  21. }
  22. }
  23. else
  24. {
  25.  [..............blebleble...........]
  26. }
  27. ?>

No wiec odnosnie tego mam takie jedno big pytanie. Skoro dla kazdego newsa wykonuje zapytanie o autora, tzn. ze jezeli mam 100 newsów to wykonuję dodatkowych 100 zapytan? Czyli powinienem miec wyswietlone 1xx zapytan do sql? A moze mozna jakos inaczej rozwiazac pobieranie autora przez jakies zaawansowane zapytanie do sql?
Kod pisany od reki, ale mam nadzieje, ze rozumiecie o co chodzi;d

Dziękuję z góry za odpowiedzi:)

Ten post edytował tommy4 10.07.2006, 07:44:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nasty
post
Post #2





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

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


Co do unset:
teraz we wszystkich nowoczesnych jezykach progrogramowania wysokiego stopnia, jest takie cos jak "Garbage Collector", jet to odpowirdzialne za zwalnianie pamieci w miare mozliwosci, nie bede sie rozpisywal za bardzo ale streszcze ci co sie dzieje w php:
W php kazda zmienna,obiekt ma tykie cos jak ilosc powiazan (reference count), co znaczy "ile zeczy jest zalezne od tej zmiennej/objektu", jak ten refference count staje sie rowny = 0 to zmienna / object jest automatycznie zwalnianie z pamieci, i niema podszeby robienia unset, bo wychodzi na jedno. Ale tylko jak masz na mysli zwolnic pamiec.

Ten post edytował nasty_psycho 10.07.2006, 10:17:32
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: 7.10.2025 - 04:44