![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 13.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam pewien problem, z którym próbowałem już walczyć na kilka sposobów. Korzystam z frameworka Kohana, to mój pierwszy projekt w nim pisany. Do łączenia się z bazą danych używam interfejsu PDO. W konstruktorze klasy abstrakcyjnej wywołuję metodę, w której łączę się z bazą danych. Klasa ta jest dziedziczona przez inne klasy, gdzie chcę korzystać z tego identyfikatora i wykonywać zapytania. Skrypt wyrzuca mi błąd, że przekroczony został limit połączeń z bazą danych. Sprawa wydaje się być prosta, wystarczy w metodzie nawiązującej połączenie z bazą danych sprawdzać, czy takie połączenie już istnieje. niestety wyczerpały mi się już pomysły, jak to zrobić, męczę się z tym już od jakiegoś czasu i nie mogę z tego wybrnąć. Będe wdzięczny za jakieś podpowiedzi. Oto kod tej metody:
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Próbujesz wynaleźć koło na nowo. Przecież KohanaPHP ma bibliotekę Database, ma ORM, masz Query Buildera.
-------------------- Google knows the answer...
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 13.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
wiem, że ma
ale według mnie PDO jest wydajniejsze |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Na chwilę obecną Twoj problem nie ma związku z Kohaną jako taką - przenoszę.
Każdy Twoj obiekt inicjalizuje na nowo obiekt DBO - nic więc dziwnego ze szlag trafia liczbę połączeń. Obiekt DBO (a co za tym idzie połączenie do bazy danych) ma być utworzony tylko raz, a następnie ten jeden obiekt ma być używany. Aby to zrealizować poczytaj o wzorcach, np: Singleton Rejestr -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Nospor ma rację. Zamiast notorycznie robić różne obiekty połączenia, zrób jeden i używaj go w reszcie. Przykładowo jako zmienna statyczna przechowująca identyfikator połączenia.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Próbujesz wynaleźć koło na nowo. Przecież KohanaPHP ma bibliotekę Database, ma ORM, masz Query Buildera. Popieram. Po co korzystasz z frameworka skoro i tak tak istotną rzecz jak połączenie z bazą danych starasz się pisać samodzielnie? Masz przecież modele czy po prostu Database::instance() więc z tego korzystaj. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 13.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ok, jednak będe korzystał z wbudowanej biblioteki Database w Kohanie. Interesuje mnie taka rzecz. Kohana, którą ściągnąłem ma sterownik do PDO Sqllite, a czy istnieje sterownik PDO Mysql? Myślałem, żeby przerobić po prostu ten sterownik z Sqllite, ale nie wiem, czy stworzenie tylko jednego nowego pliku to już wszystko, czego potrzeba.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 19:31 |