![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 19.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cześć :]
Postanowiłem napisać klasę do obsługi bazy danych MySQL. Kod źródłowy Łączenie z bazą odbywa się poprzez konstruktor, któremu musimy dostarczyć tablicę z elementami ‘host’, ‘database’, ‘user’ i ‘password’. Za rozłączanie odpowiedzialny jest destruktor :] Aby “ustawić” dowolne zapytanie, trzeba utworzyć nowy obiekt klasy Query. Jedynym argumentem konstruktora klasy Query jest zapytanie SQL, potem można je edytować metodami Query::clear () [resetuje zapytanie] oraz Query::setQuery ($query) [ustawia nowe zapytanie]. Aby wykonać zapytanie inne niż “SELECT…”, użyj metody Amber::executeQuery (Query $query). Aby pobrać z tabeli wiele wierszy, użyj Amber::getAll (Query $query), a jeden wiersz - Amber::getRow (Query $query). Przykład użycia znajduje się w kodzie źródłowym skryptu. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 197 Pomógł: 0 Dołączył: 11.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cache by sie przydał ...
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 19.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mówiąc szczerze, zupełnie nie mam pomysłu na dorobienie cache'owania... Coś pokombinuję, nic nie obiecuję...
|
|
|
![]()
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%) ![]() ![]() |
Mam kilka uwag:
- brak obslugi transakcji - brak zwrocenia ilosci zmodyfikowoanych, dodanych, usunietych rekordow - brak zwrocenie id dodanego |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Ja dodam jeszcze, ze przydaly by sie funkcje getOne(), ktora zwraca pierwsza wartosc z pierwszego wiersza, przydaje sie do SELECT COUNT(*) FROM....
Jesli chodzi o cachowanie to sprawdza sie w tej roli serializacja. Ja wlasnie z niej korzystam do cachowania. Jest szybsza niz zapisywanie var_exportem i potem include, robilem porownanie. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 19.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
2. i 3. gotowe.
transakcje i cache (?) będą jutro :] FiDO: można dopisać metodę getOne(), ale to już jest chyba zbędne. a co do cache'owania to cały czas myślę i chyba nic nie wymyślę :] jak na razie zrobiłem prostą klasę do cache'owania plików .txt (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) teraz ją rozwijam o MySQL, zobaczymy, co z tego wyjdzie :] |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Fipaj @ 2006-01-17 20:08:51) FiDO: można dopisać metodę getOne(), ale to już jest chyba zbędne. Wg mnie jest to bardzo przydatne. Po co pisac:
jak mozna:
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 19.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Metoda getOne() dodana :]
Obsługa transakcji też:
Dostęp do bazy MySQL 5.0 będę miał za 4 miesiące (nieskonfigurowane backporty Ubuntu :/), tak więc nie mogę transakcji przetestować. I w ogóle nigdy z nich nie korzystałem. Spójrzcie w kod, czy zadziała. @Levabul: cały czas pracuję nad cache :] |
|
|
![]()
Post
#9
|
|
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%) ![]() ![]() |
Transakcje nie zaleza od wersji tylko od rodzaju systemu tabeli (InnoDB)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 19.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ale w wersji 5.0 transakcje zostały wprowadzone do MyISAM...?
PS. Jeśli chodzi o cache to ja się poddaję :/ |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 197 Pomógł: 0 Dołączył: 11.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
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%) ![]() ![]() |
Cytat Ale w wersji 5.0 transakcje zostały wprowadzone do MyISAM...? Nie sadze bo to by sie wiazalo ze spadkiem wydajnosci. No ale pewnie na stronie jakies info bedzie. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 19.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Tak, jest info w dokumentacji :] Sprawdziłem i obsługa transakcji Ambera jest zgodna zarówno z InnoDB na 4.x, jak i z MyISAM na 5.x.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 1 Dołączył: 2.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Fajny pomysł z tym konstruktorem i destruktorem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Nigdy tak nie robiłem. Zrób jeszcze cachowanie i bedzie git (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Jeszcze by sie przydało zliczanie zapytań (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) no i nie wiem czy lepiej by było to wszystko dać w 1 klase. Ten post edytował Apo 28.01.2006, 17:40:03 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 148 Pomógł: 0 Dołączył: 8.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
a ja mam pytanko: staram się również zrobić klase obsługującą MySQLa i chciałbym wiedzieć czy lepiej do sprawdzania czy wystąpil jakiś błąd używać takiego sposobu:
czy takiego
które jest lepsze? no jeżeli jest któreś lepsze (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) aha i jeszcze jedno pytanko jaka różnica w używaniu mysqli_real_escape_string() a mysqli_escape_string(), któraś funkcja lepsza? |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 19.01.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Apo: jest już w jednej klasie. Zobacz Jungle w mojej sygnaturze.
Gam3r: doskonałe miejsce na takie pytania... Cytat jaka różnica w używaniu nie ma. ta druga to alias pierwszej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) a co do pierwszego pytania... też nie ma (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:05 |