Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> obługa połączeń z bazą
Avatarus
post
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

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


Witam
Mam pytanie odnośnie waszych metod obsługi połączeń z bazą (domyślnie mysql). Jak sobie z nimi radzicie. Zastanawiacie się o co dokładnie pytam? Zrozumiecie jak przeczytacie przykład poniżej.

  1. <?php
  2. function pokaz()
  3. {
  4. polaczenie();
  5. $sql=mysql_query('SELECT * from ogloszenia');
  6. while ($wiersz=mysql_fetch_assoc($sql);
  7. {
  8. KOD
  9. }
  10. }
  11. ?>


wiedząc, że ta i kilka innych funkcji w tym skrypcie korzysta w różnoraki sposób z bazy (dodawanie, kasowanie, sprawdzanie itp). Jak poradzilibyście sobie z tym połączeniem. Czy po pętli while trzeba jakoś wywalać dane resource, albo ręcznie zamykać połączenia? A może coś jeszcze?
Chodzi mi o poprawne pisanie takich właśnie funkcji, nastawiam się na szybki i zoptymalizowany kod.
Nie wiem czy jasno napisałem o co mi chodzi, bo czasem myślę dość chaotycznie smile.gif
Czy np po whilu dawać mysql_close(); ? ma to sens skoro te połączenia i tak się zamkną po zakończeniu tego skryptu...

Z góry dziękuje i pozdrawiam


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
MMPrime
post
Post #2





Grupa: Zarejestrowani
Postów: 79
Pomógł: 12
Dołączył: 23.04.2008

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


Najlepszym wyjściem jest korzystanie z własnej klasy do obsługi połączeń z bazą danych. Wtedy połączenie jest nawiązywane w odpowiednim momencie, tuż przed wykonaniem pierwszego zapytania. Połączenie z bazą danych zamykam po wykonaniu wszystkich akcji, ale przed wykonaniem widoku.


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




Ja osobiście korzystam z inkluzji pliczku odpowiedzialnego za łączenie z bazą. Dla mnie jest to wygodne wystarczy zmienić w jednym pliczku i jest wszędzie. Jako że nie potrzebuje żadnych wodotrysków to rozwiązanie mnie wystarcza.


--------------------
Go to the top of the page
+Quote Post
Avatarus
post
Post #4





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

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


no ja niestety jestem zatwardziałym strukturowcem, nie lubię pracować na klasach, chodź czasem muszę (proszę mnie tylko nie namawiać, bo problem taki że wiele skryptów jest już napisanych i nie mam czasu ich przerabiać).

Rozumiem, czyli jednak zamykać wszystko po użyciu bazy.
Czyli tylko to? zamykać zawsze i nic więcej?


--------------------
Go to the top of the page
+Quote Post
l0ud
post
Post #5





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Jeżeli nie programujesz obiektowo to nie masz zbyt wielu możliwości. Najprościej chyba tak:
- na samym początku skryptu dołączyć plik posiadający dane do bazy, spróbować się z nią połączyć i obsłużyć błąd jeżeli się to nie uda
- wykonywać zapytanie do bazy bezpośrednio przez mysql_query($zapytanie), albo pofatygować się z doprowadzeniem uchwytu do bazy w każdej funkcji ją wykorzystującej (i dołączać do mysql_query)
- jak już Ci zależy na małym z użyciu pamięci, używaj mysql_free_result() po pobraniu danych z zapytania:
http://pl.php.net/manual/pl/function.mysql-free-result.php
- nie zamykać połączenia z bazą danych (bo po co?). Możesz nawet zamiast mysql_connect na początku użyć mysql_pconnect który utworzy szybsze, stałe połączenie z bazą danych.


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post

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 Aktualny czas: 21.08.2025 - 18:32