Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak Zend DB zarządza połączeniami z bazą danych

Tworzenie połączenia

Tworzenie instancji klasy adaptera nie łączy się natychmiast z serwerem RDBMS . Adapter zapisuje parametry połączenia i wykonuje rzeczywiste połączenie na żądanie, pierwszy raz musisz wykonać zapytanie. Dzięki temu tworzenie obiektu adaptera jest szybkie i niedrogie. Możesz utworzyć instancję Adaptera, nawet jeśli nie masz pewności, czy musisz uruchomić jakiekolwiek zapytania do bazy danych podczas bieżącego żądania, które obsługuje Twoja aplikacja.

Jeśli chcesz wymusić połączenie adaptera z systemem RDBMS, użyj metody getConnection(). Ta metoda zwraca obiekt dla połączenia reprezentowany przez odpowiednie rozszerzenie bazy danych PHP. Na przykład, jeśli używasz którejkolwiek z klas Adaptera dla sterowników PDO, to getConnection() zwraca obiekt PDO po zainicjowaniu go jako połączenia na żywo z określoną bazą danych.

Wymuszanie połączenia może być przydatne, jeśli chcesz przechwycić wyjątki, które zgłasza w wyniku nieprawidłowych poświadczeń konta lub innego niepowodzenia połączenia z serwerem RDBMS. Te wyjątki nie są zgłaszane, dopóki nie zostanie nawiązane połączenie, więc może to pomóc uprościć kod aplikacji, jeśli obsługujesz wyjątki w jednym miejscu, a nie w czasie pierwszego zapytania do bazy danych.

Ponadto adapter może zostać poddany serializacji w celu przechowywania go, na przykład, w zmiennej sesji. Może to być bardzo przydatne nie tylko dla samego adaptera, ale także dla innych obiektów, które go agregują, takich jak obiekt Zend_Db_Select. Domyślnie adaptery mogą być serializowane, jeśli tego nie chcesz, powinieneś rozważyć przekazanie opcji Zend_Db::ALLOW_SERIALIZATION z wartością FALSE, patrz przykład powyżej. Aby przestrzegać zasady leniwych połączeń, adapter nie połączy się ponownie po usunięciu numeru seryjnego. Następnie musisz sam wywołać getConnection(). Możesz ustawić automatyczne ponowne połączenie adaptera, przekazując Zend_Db::AUTO_RECONNECT_ON_UNSERIALIZE z TRUE jako opcją adaptera.

Zamykanie połączenia

Zwykle nie jest konieczne zamykanie połączenia z bazą danych. PHP automatycznie czyści wszystkie zasoby i koniec żądania. Rozszerzenia bazy danych mają na celu zamknięcie połączenia, gdy odwołanie do obiektu zasobu jest czyszczone.

Jednakże, jeśli masz długotrwały skrypt PHP, który inicjuje wiele połączeń z bazą danych, może być konieczne zamknięcie połączenia, aby uniknąć wyczerpania możliwości serwera RDBMS. Możesz użyć metody closeConnection() adaptera, aby jawnie zamknąć połączenie z bazą danych.

Od wersji 1.7.2 możesz sprawdzić, czy jesteś aktualnie połączony z serwerem RDBMS za pomocą metody isConnected(). Oznacza to, że zasób połączenia został zainicjowany i nie został zamknięty. Ta funkcja nie jest obecnie w stanie przetestować na przykład zamknięcia połączenia po stronie serwera. Jest to używane wewnętrznie do zamknięcia połączenia. Pozwala na wielokrotne zamykanie połączenia bez błędów. Tak było już przed wersją 1.7.2 w przypadku adapterów PDO, ale nie w przypadku innych.

Więcej informacji




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przyciąć wiodący i końcowy cytat z MySQL Row?

  2. Udostępnij widok sql

  3. Uzyskaj najnowszą datę z pogrupowanych danych MySQL

  4. Jak zaimportować plik csv do środowiska pracy MySQL?

  5. Jak sprawdzić, czy indeks istnieje w polu tabeli w MySQL?