Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dziedziczenie klas a wiele instancji
Forum PHP.pl > Forum > PHP > Object-oriented programming
piotr94
Witajcie!
Mam taką sytuację:
  1. class mysql{
  2. //tu zdefiniowane zmienne prywatne przechowujące m. in uchwyt połączenia
  3. //i wszystkie operacje na bazie także odwołujące się do tego uchwytu połączenia
  4. //w tym mysql_select_db();
  5. }
  6. class A extends mysql{
  7. //jakieś funkcje charakterystyczne dla tego zestawu odwołań
  8. }
  9.  
  10. class B extends mysql{
  11. //jakieś funkcje charakterystyczne dla tego zestawu odwołań
  12. }
  13.  
  14. $db1 = new A;
  15. $db2 = new B;


I w teorii moich przewidywań wszystko ślicznie - mam 2 połączenia z bazami danych (gdzie funkcje podstawowe zapewnia klasa mysql) i mogę się niezależnie do nich odwoływać.
Jednak efekt mnie nieco zaskoczył. W rzeczywistości odwołania do obiektu A (po takiej deklaracji) powodują korzystanie z połączenia ustanowionego przez konstruktor obiektu B... Tak jakby była tworzona tylko jedna instancja klasy mysql...
Bardzo proszę o pomoc i wyjaśnienie przyczyny takiego zachowania...

Z góry dziękuję za pomoc.
Pozdrawiam
PR
vermis
Nie wiem jak wygląda samo połączenie. Jeśli używasz mysql_connect to daj 4 parametr na true co wymusza ustanowienie nowego identyfikatora połączenia, w przypadku, gdy oba korzystają z tych samych argumentów. Rzuć okiem http://php.net/manual/en/function.mysql-connect.php
W przypadku, gdy łączysz się z dwiema bazami na tym samym serwerze Twój opis wskazuje że działa poprawnie, czyli korzysta z jednego połączenia.
piotr94
Dzięki za naprowadzenie - strzał w 10 - śmiga teraz jak należy (na razie rzeczywiście testuję na tym samym serwerze - docelowo będą 3 serwery).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2020 Invision Power Services, Inc.