ForumCała strona

Nawigacja

Aktualnie online

Gości online: 5

Użytkowników online: 0

Łącznie użytkowników: 25,405
Najnowszy użytkownik: kipolas

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

Zbigniew@
22.11.2025 22:33:17
Mozna sie przyzwyczaic.

JazOOn
19.11.2025 20:48:55
No niestety, odchodzimy do lamusa, wyginelismy jak dinozaury

MajsterBieda
14.11.2025 02:25:41
Matko Kozloska Frown

jantom
09.11.2025 23:36:14
Szkoda, ze stronka jest w takim stanie. Chyba czas zgasic swiatlo...

JazOOn
01.11.2025 20:25:52
d*pa

Pobierz now? wersj?
Pobierz podr?cznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

 Drukuj temat
Klasa DbConnect - ??czenie z baz? danych
Chemikpil
Witajcie.
Ostatnio bawi? si? w obiektowy PHP (jako? wcze?niej nie by?o okazji). Dla ?wicze? wykona?em prost? klas?, ??cz?c? si? z baz? i wykonuj?cej zapytania do niej. Nie jest to nic profesjonalnego i nowego, wi?c prosz? o nie pisanie komentarzy tupu, "proste", "takie to i ja potrafi?" itp. Dobra do sedna.
Klasa o nazwie DbConnect ma za zadanie, jak ju? wspomnia?em, po??czy? si? z baz? danych i wykona? jakie? zapytania. O to przyk?ad u?ycia:
Pobierz kod źródłowy  Rozwiń Kod źródłowy


Dzia?anie krok po kroku:
  1. Dodajemy klas? do pliku
  2. Tworzymy nowy obiekt klasy DbConnect a jako jego parametry przesy?amy nazw? hosta, u?ytkownika i jego has?o do bazy
  3. Nast?pnie wywo?ujemy metod? connect(), umo?liwiaj?c? po??czenie z wybran? baz?, poprzez pierwszy parametr. Drugi parametr prefix jest opcjonalny i przechowuje o prefix tabel w bazie. Mo?na go wykorzysta? w zapytaniach.
  4. Tworzymy zapytanie. Jak wida? mo?na tu wykorzysta? nasz parametr prefix.
  5. Na koniec pobieramy element z tablicy danych.

Jak wida? filozofii nie ma.

Teraz pytanie do osób obeznanych w temacie. Czy ta klasa jest optymalna, bo by? mo?e mo?na zrobi? co? lepiej, cho? wiem ?e za du?o w niej nie ma :).
Ciekawi mnie te? ró?nica pomi?dzy
Pobierz kod źródłowy  Rozwiń Kod źródłowy
a
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Szybko???
Na koniec kwestia bezpiecze?stwa, bo tu kuleje i to na dwie nogi.
Pozdrawiam.
Chemikpil dodał/a następującą plik:
dbconnect.zip [956Bajtów / 498 Pobrane]

Edytowane przez Chemikpil dnia 11.05.2010 23:37:51
Nie pisa? na GG i PW w sprawach technicznych!
ChemikPil - blog (w nowej ods?onie) | ChemikPIL - My twitter
 
www.chemikpil.pl
W?cibski Go??
Dodany dnia 10.12.2025 13:14:24
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
bartek124
Po po??czeniu z baz? powiniene? usun?? z pami?ci dane do bazy, tj. has?o, nazw? itp.

Dwa, co z zapytaniami zagnie?d?onymi?
Pobierz kod źródłowy  Rozwiń Kod źródłowy

userbar_bartek124_net.png mw.gif Nie pomagam na komunikatorach oraz PW!
 
www.bartek124.net
Seba0p
1. Po co zapisujesz dane s?u??ce do po??czenia si? z baz??

Co najwy?ej przechowuj uchwyt po??czenia z baz? (zwrócona warto?? z funkcji mysql_connect).

Je?li chcesz przechowywa? tak cenne dane w klasie, to przynajmniej ustaw status ich dost?pu na chroniony.

2. Nie widz? sensu czego? takiego:

Pobierz kod źródłowy  Rozwiń Kod źródłowy


Od razu w konstruktorze napisz kod odpowiedzialny za po??czenie z baz? danych. Skrócimy kod do:

Pobierz kod źródłowy  Rozwiń Kod źródłowy


3. W wi?kszo?ci przypadków taki kod nie b?dzie przydatny:

Pobierz kod źródłowy  Rozwiń Kod źródłowy


W warto?ci query_fetch zostanie zapisany tylko pierwszy wiersz.

Je?li chcemy wyci?gn?? z bazy danych wi?cej wierszy, to i tak b?dziemy zmuszeniu do napisania w?asnego kodu, wykorzystuj?c co najwy?ej warto?? query.
 
http://seba0p.pl
Chemikpil
Dobra.
Poprawi?em troch? kod:
  1. Po pierwsze nie trzymam ju? danych do bazy. Przekazywane s? one do konstruktora, a samo po??czenie trzymane jest w parametrze connect, który ma status private.
  2. Po drugie przenios?em po??czenie z baz? do konstruktora, lecz sam wybór bazy to mam pewne w?tpliwo?ci. Za?ó?my, ?e mam na serwerze stron? w PF oraz forum oparte na phpBB. Ka?da ma osobn? baz?, i teraz w jednym skrypcie chcia? bym wyci?gn?? dane z dwóch baz. To zamiast robi? dwa konstruktory mam jeden, i korzystam tylko z metod. Tak ja to widz?, cho? mo?e my?l? ?le :)
  3. Usun??em metod? tworz?c? tablice elementów. Teraz to pozostawiam u?ytkownikowi klasy


Kod:
Pobierz kod źródłowy  Rozwiń Kod źródłowy


Bartek, zapytanie zagnie?d?one to jak na razie dla mnie temat tabu, cho? konstruuj?c same zapytanie nie ograniczam go w ?aden sposób. Jest ono przekazane do metody i tam wykonane. Tak my?l?, cho? powtarzam, ja w obiektowo?ci raczkuje dopiero.
Pozdrawiam.
Nie pisa? na GG i PW w sprawach technicznych!
ChemikPil - blog (w nowej ods?onie) | ChemikPIL - My twitter
 
www.chemikpil.pl
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl