Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como Zend DB Gerencia Conexões de Banco de Dados


Criando conexão

A criação de uma instância de uma classe Adapter não se conecta imediatamente ao servidor RDBMS . O Adaptador salva os parâmetros de conexão e faz a conexão real sob demanda, na primeira vez você precisa executar uma consulta. Isso garante que a criação de um objeto Adapter seja rápida e barata. Você pode criar uma instância de um Adaptador mesmo se não tiver certeza de que precisa executar consultas de banco de dados durante a solicitação atual que seu aplicativo está atendendo.

Se você precisar forçar o Adaptador a se conectar ao RDBMS, use o método getConnection(). Este método retorna um objeto para a conexão conforme representado pela respectiva extensão de banco de dados PHP. Por exemplo, se você usar qualquer uma das classes Adapter para drivers PDO, getConnection() retornará o objeto PDO, após iniciá-lo como uma conexão ativa com o banco de dados específico.

Pode ser útil forçar a conexão se você quiser capturar quaisquer exceções que ela gere como resultado de credenciais de conta inválidas ou outra falha ao se conectar ao servidor RDBMS. Essas exceções não são lançadas até que a conexão seja feita, portanto, pode ajudar a simplificar o código do aplicativo se você manipular as exceções em um local, em vez de no momento da primeira consulta no banco de dados.

Além disso, um adaptador pode ser serializado para armazená-lo, por exemplo, em uma variável de sessão. Isso pode ser muito útil não apenas para o próprio adaptador, mas para outros objetos que o agregam, como um objeto Zend_Db_Select. Por padrão, os adaptadores podem ser serializados, caso não queira, considere passar a opção Zend_Db::ALLOW_SERIALIZATION com FALSE, veja o exemplo acima. Para respeitar o princípio de conexões preguiçosas, o adaptador não se reconectará após ser não serializado. Você deve então chamar getConnection() você mesmo. Você pode fazer o adaptador se reconectar automaticamente passando Zend_Db::AUTO_RECONNECT_ON_UNSERIALIZE com TRUE como uma opção de adaptador.

Fechando uma conexão

Normalmente não é necessário fechar uma conexão de banco de dados. O PHP limpa automaticamente todos os recursos e o final de uma solicitação. As extensões de banco de dados são projetadas para fechar a conexão à medida que a referência ao objeto de recurso é limpa.

No entanto, se você tiver um script PHP de longa duração que inicia muitas conexões de banco de dados, talvez seja necessário fechar a conexão para evitar esgotar a capacidade do servidor RDBMS. Você pode usar o método closeConnection() do Adapter para fechar explicitamente a conexão de banco de dados subjacente.

Desde a versão 1.7.2, você pode verificar se está atualmente conectado ao servidor RDBMS com o método isConnected(). Isso significa que um recurso de conexão foi iniciado e não foi fechado. Esta função não é atualmente capaz de testar, por exemplo, um fechamento do lado do servidor da conexão. Isso é usado internamente para fechar a conexão. Ele permite que você feche a conexão várias vezes sem erros. Já era o caso antes de 1.7.2 para adaptadores PDO, mas não para os outros.

Mais informações