sql >> Databáze >  >> RDS >> Mysql

Jak Zend DB spravuje databázová připojení

Vytváření připojení

Vytvoření instance třídy Adapter nepřipojí okamžitě k serveru RDBMS . Adaptér uloží parametry připojení a vytvoří skutečné připojení na vyžádání, poprvé musíte provést dotaz. To zajišťuje, že vytvoření objektu Adapter je rychlé a levné. Instanci Adaptéru můžete vytvořit, i když si nejste jisti, že potřebujete spustit jakékoli databázové dotazy během aktuálního požadavku, který vaše aplikace obsluhuje.

Pokud potřebujete vynutit, aby se adaptér připojil k RDBMS, použijte metodu getConnection(). Tato metoda vrací objekt pro připojení reprezentovaný příslušným rozšířením databáze PHP. Pokud například pro ovladače PDO použijete kteroukoli z tříd Adapter, pak getConnection() vrátí objekt PDO poté, co jej inicializuje jako živé připojení ke konkrétní databázi.

Může být užitečné vynutit připojení, pokud chcete zachytit jakékoli výjimky, které vyvolá v důsledku neplatných přihlašovacích údajů účtu nebo jiného selhání připojení k serveru RDBMS. Tyto výjimky nejsou vyvolány, dokud není navázáno připojení, takže vám může pomoci zjednodušit kód aplikace, pokud výjimky zpracováváte na jednom místě, nikoli v době prvního dotazu na databázi.

Adaptér lze navíc serializovat, aby byl uložen, například v proměnné relace. To může být velmi užitečné nejen pro samotný adaptér, ale i pro další objekty, které jej agregují, jako je objekt Zend_Db_Select. Standardně je povoleno serializovat adaptéry, pokud to nechcete, měli byste zvážit předání možnosti Zend_Db::ALLOW_SERIALIZATION s hodnotou FALSE, viz příklad výše. Aby byl dodržen princip líných připojení, adaptér se po zrušení sériového připojení sám znovu nepřipojí. Potom musíte sami zavolat getConnection(). Automatické opětovné připojení adaptéru můžete provést předáním možnosti Zend_Db::AUTO_RECONNECT_ON_UNSERIALIZE s hodnotou TRUE.

Uzavření připojení

Normálně není nutné zavírat připojení k databázi. PHP automaticky vyčistí všechny zdroje a konec požadavku. Rozšíření databáze jsou navržena tak, aby ukončila připojení, když se vyčistí odkaz na objekt prostředku.

Pokud však máte dlouhodobý PHP skript, který spouští mnoho databázových připojení, možná budete muset připojení ukončit, abyste předešli vyčerpání kapacity vašeho serveru RDBMS. K explicitnímu uzavření základního databázového připojení můžete použít metodu closeConnection() adaptéru.

Od verze 1.7.2 můžete zkontrolovat, zda jste aktuálně připojeni k serveru RDBMS pomocí metody isConnected(). To znamená, že prostředek připojení byl zahájen a nebyl uzavřen. Tato funkce aktuálně nedokáže otestovat například uzavření spojení na straně serveru. Toto se interně používá k uzavření spojení. To vám umožní zavřít připojení několikrát bez chyb. U adaptérů PDO tomu tak bylo již před verzí 1.7.2, ale ne u ostatních.

Další informace




  1. použijte IFNULL v laravel

  2. Codeigniter Připojte se s více podmínkami

  3. Server MySQL zmizel během procházení v Perlu

  4. Získejte velikost všech tabulek v databázi