Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wywołanie obiektu tylko raz
Wolfie
post 23.10.2009, 17:13:46
Post #1





Grupa: Zarejestrowani
Postów: 686
Pomógł: 0
Dołączył: 10.11.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Witam,

Mam taki kawalek kodu :

  1. function trainFilter($spam) {
  2. $table = $this->tokenizeFile();
  3. foreach($table as $value) {
  4. $totalsrow = new TotalsRow(new MysqlDatabase('localhost','root', 'wmateusz', 'spam'));
  5. $totalsrow->checkTotals($spam);
  6. $tokenrow = new TokenRow(new MysqlDatabase('localhost','root', 'wmateusz', 'spam'));
  7. $token = $tokenrow->setToken($value);
  8. $tokenrow->checkToken($token,$spam);
  9. //$row->insert();
  10. }
  11. }
  12.  
  13. function getTokensValues() {
  14. $table = $this->tokenizeFile();
  15. foreach($table as $value) {
  16. $tab = new TokenTable(new MysqlDatabase('localhost','root', 'wmateusz', 'spam'));
  17. $gettoken[] = $tab->find($value);
  18. }
  19. return $gettoken;
  20. }
  21.  
  22. function getTotalsValues() {
  23. $totals = new TotalsTable(new MysqlDatabase('localhost','root', 'wmateusz', 'spam'));
  24. $gettotals = $totals->findAll();
  25. return $gettotals;
  26. }


Jak widac mamy tutaj 3 funkcje, ale co od razu rzuca sie zapewne w oczy to to , ze za kazdym razem gdy uruchamiana jest jakas funkcja od nowa nastepuje połączenie z bazą danych. np:

  1. $totals = new TotalsTable(new MysqlDatabase('localhost','root', 'wmateusz', 'spam'));


Gdzie new MysqlDatabase to klasa w ktorej konstruktorze nastepuje połączenie z bazą danych, ponadto w powyzszyf funkcjach znajdują sie petle foreach, wiec z kazda iteracja petli jest inicjowane nowe polaczenie z baza.


Prosilbym o wskazówki jak zoptymalizowac kod, zeby tyle razy nie wywolywac połączenia z baza.......

(tak na marginesie, nie wiem czy tego nie powinienem pisac w innym dziale....bo tak z przyzwyczajenia wszystko wrzucam do przdszkola..)

Ten post edytował Wolfie 23.10.2009, 17:22:10
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:21