Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Poprawność funkcji łączących z bazą, Prośba o schematowe "dobre rady".
ixpack
post 1.06.2010, 10:03:48
Post #1





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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


Proszę kogoś elokwentnego o pomoc w poprawieniu niżej podanych funkcji (mój 1szy wątek i trochę się boję "was", ale musi być kiedyś ten 1szy raz winksmiley.jpg):

  1. function polaczenie()
  2. {
  3. $wynik = @new mysqli('ip.ip.ip.ip', 'login', 'haslo', 'baza');
  4. if (!$wynik) throw new Exception('Error with connection, please try later');
  5. else $wynik->autocommit(TRUE);
  6. return $wynik;
  7. }


To jedna z 2ch funkcji - ustanawiająca połączenie... Co powinienem w niej zmienić?

  1. function pobierz_nazwe_czegos($idczegos)
  2. {
  3. $idczegos = intval($idczegos);
  4. $lacz = polaczenie();
  5. $zapytanie = "select nazweczegos from tabelaczegos where idczegos = $idczegos";
  6. $wynik = @$lacz->query($zapytanie);
  7. if (!$wynik)
  8. return false;
  9. $ilosc_nazw = @$wynik->num_rows;
  10. if ($ilosc_nazw == 0)
  11. return false;
  12. $nazwa = $wynik->fetch_object();
  13. $lacz->close();
  14. return $nazwa->nazwaczegos;
  15. }
  16.  
  17. $nazwa = pobierz_nazwe_czegos($idczegos);





Tu pobieram tylko jedną nazwę elementu, gdzie znam konkretny id elementu - Jestem "samoukiem", gdzieś czytałem, gdzieś podpatrzyłem, sam napisałem... Dlatego "pytam", bo chyba sam lepiej nie wymyślę.

Ps. Czy muszę zamykać połączenie "$lacz->close();" jeżeli w funkcji 1 mam "autocommit(TRUE);"?

Dzięki za odpowiedź smile.gif


ixpack
-------------
Łatwo jest być odważnym za murami własnego zamku...


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zend
post 1.06.2010, 14:22:01
Post #2





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


set exception handler - poczytaj także o tym. Sprawdź też jakie inne parametry przyjmuje klasa exception. Nadal każde pobranie połączenia do bazy powoduje nawiązanie kolejnego połączenia, mimo że połączenie mogło być już nawiązanie. Jeżeli mnie pamięć nie myli to w funkcji możesz skorzystać ze zmiennych statycznych, które mogą utrzymywać stan pomiędzy kolejnymi wywołaniami
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 - 23:32