ForumCała strona

Nawigacja

Aktualnie online

Gości online: 7

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@
18.10.2025 19:31:20
Forum nie dziala nawet bez polskich znakow.

JazOOn
16.10.2025 18:21:12
nie dziala z polskimi znakami

Zbigniew@
12.10.2025 15:20:31
Tylko dla wybranych.

JazOOn
06.10.2025 21:00:15
czy shout dziala?

hoopak
02.10.2025 10:33:17
Bleeeeee Cool

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 / 464 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 24.10.2025 18:02:45
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