![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Od niedawna dopiero zaczełem interesować się php5 i dzisiaj napisałem sobie taką klase do obsługi bazy danych:
i przykład:
tak jak pisałem wyżej, dopiero zaczynam z php5 więć moge robić błędy...proszę o pisanie co jest w tej klasie żle napisane i uwagi co moge dodać. Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 211 Pomógł: 3 Dołączył: 29.07.2005 Skąd: Szczebrzeszyn Ostrzeżenie: (0%) ![]() ![]() |
najlepiej zmienna ktora zwraca mysql_query trzymaj w klasie lub zwracaj obiekt na ktorym bedziesz robil fetch() (lub false gdy zle zapytanie), inaczej nie masz pewnosci ze metoda fetch sie wykona bez wywalania bladow...
poza tym brak przenoszalnosci pomiedzy bazami... dalej to robienie die() gdy nie ma polaczenia z baza... do tego dorzucilbym jeszcze przejscie na singletona ![]() a tak btw. to lepiej zainteresowac sie gotowym rozwiazaniem, polecam creole ![]() Ten post edytował pawel_k 9.08.2006, 10:39:51 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
d@ro - jakiś czas temu też próbowałem napisać coś do obsługi danych. Wydaje mi się, że powinieneś zadbać a kilka rzeczy:
- możliwość iterowania wyników zapytania - możliwość informowania jakie zapytania zostały wykonane itp. Moim zdaniem warto również zadbać o możliwość cachowania wyników - ja akurat tworzyłem rozwiązanie dla PostgreSql i były wyniki zachęcające - co do Mysql'a zdania były podzielone czy to daje jakiś wzrost efektywności - mi wydaję się, że tak, ale nie testowałem. Tutaj moje rozwiązanie Nie jest to nic wielkiego i trzeba na pewno jeszcze pare rzeczy dodać, ale na początek jest ok. Oczywiście takie rzeczy warto pisać dla wprawy, bo zazwyczaj gotowe rozwiązania są dużo lepsze - mądrzy ludzie nad nimi pracują ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
A gdzie wyjatki? Dla mnie troche dziwnym pomyslem jest obecnie przy programownaniu OOP dawac die, czy zwracac false zamiast zwracac wyjatku.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wyjątki...czyli jak to powinno wyglądać?
i przykład
tak? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Nie!!!
1. Zrob tak zebys nie mial zadnego die() w bibliotece 2.
to nie tak sie robi,
ma wyrzucic wyjatek gdy nie moze sie polaczyc/ wybrac bazy danych. -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Czym chcesz przewaznie nadaje sie nazwe klasy ktora wyrzuca wyjatek clasa A => AException ale to zalezy od Ciebie jak sobie nazwiesz.
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam teraz tak
i wywala mi Fatal error: Class 'DBException' not found in index.php on line 52 co robie zle? Ten post edytował d@ro 10.08.2006, 07:55:14 |
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
A masz zdaefiniowaną klasę DBException ?
Jak nie masz to napisz sobie. Pamiętaj że musi ona dziedziczyć po klasie z Exception z biblioteki SPL. P.S. Exceptions :: Extending Exceptions |
|
|
![]()
Post
#11
|
|
![]() Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Poza tym wypadało by wyrzucić wyjątek zanim zechcesz go przechwycić. Zapoznaj się z mechanizmem wyjątków.
Póki co, to ta klasa komplikuje Ci tylko całą sytuację. Nie implementuje całego interfejsu mysql. Skończy się to tym, że będziesz na przemian używał tej klasy i funkcji mysql_*. Jedyną rzeczą, którą wykonuje ta klasa inaczej niż rozszerzenie to zliczanie zapytań. Fetch nie należy do interfejsu połączenia z bazą. Dane pobierasz z wyniku zwróconego przez bazę. -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 2 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem coś na podstawie tego co @Ludvik napisał mi w innym temacie o bazie danych.
ale teraz gdy nie ma połączenia z bazą (złe dane) to nic się nie dzieje oprócz wywalenia błędu odnośnie fetch'a. probowałem też coś takiego
ale jest tak samo..proszę o pomoc Ten post edytował d@ro 10.08.2006, 16:22:26 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 16:03 |