Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nknk

Verificar se existe conexão aberta

Recommended Posts

Como faço para verificar se existe uma conexão aberta, no caso se tiver ele manda fechar todas que tiverem aberta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como normalmente a conexão ao Banco é armazenada em uma variável, por exemplo:

$Conexao = mysql_connect('localhost', 'user', 'senha') or die('Não foi possível conectar: ' . mysql_error());

mysql_select_db('banco_de_dados') or die('Não foi possível selecionar o banco da dados');

O que pode ser feito é:
// Se a variável $Conexao estiver definida, isso significa que há uma conexão com o MySQL aberta. Então, feche-a.

if(isset($Conexao))

mysql_close($Conexao);

// Fechar a conexão com o Banco de Dados

Eu faço assim, nem sei se é o método mais adequado... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, eu não armazeno minha conexões em variaveis pq acho q deve ser inseguro

 

normalmente eu coloco @mysql_conect...

 

a situação é que eu tenho páginas q não tem conexão então gostaria de colocar uma condição caso não tenha condição

 

ou @mysql_close();

 

Só que eu não sei se é correto fechar uma conexão q não foi aberta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A única coisa que mysql_close() vai fazer se não tiver conexão aberta é dar um warning dizendo que não há conexão a fechar, portanto o @ ali já mata o assunto na minha opinião.

 

 

Porque você acha que guardar a conexão numa variável não é seguro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também fiquei com essa dúvida, por que você acha que armazenar em uma variável não é seguro?

 

E outra coisa, pessoal, esse jeito que eu passei está correto? Quer dizer, correto está porque funciona, mas ele está, digamos, coerente? :mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muitas vezes utilizamos nomes iguais para variaveis. Por exemplo $senha como sendo de um session depois você o campo com name senha. Então evito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muitas vezes utilizamos nomes iguais para variaveis. Por exemplo $senha como sendo de um session depois você o campo com name senha. Então evito.

pq diabos você criaria uma outra variavel no meio do script com nome de $conexao_db ????????????????

 

criar uma variavel que recebe uma conexao com nome de senha e f*** né ...

 

você tem que regular seu jeito de trabalhar, todos os projetos existem variaveis que acabam sendo unicas por acusa da sua importancia ...

 

eu nunca tentei isso, mas tem como atribuir uma conexao SQL em uma constante ?

 

se tiver, pronto, faça isso.... nao tem como atribuir outro valor a constante mesmo... mas acho que é forçar a barra d+

Compartilhar este post


Link para o post
Compartilhar em outros sites

então, eu não armazeno minha conexões em variaveis pq acho q deve ser inseguro

 

normalmente eu coloco @mysql_conect...

 

a situação é que eu tenho páginas q não tem conexão então gostaria de colocar uma condição caso não tenha condição

 

ou @mysql_close();

 

Só que eu não sei se é correto fechar uma conexão q não foi aberta.

Nada haver... primeiro, colocando o @ na frente de suas funções, você está inibindo o erro ou aviso que a função trará, tem que programar dentro das regras para que não aja nenhum aviso e/ou erro no sistema, utilize variáveis, não tem problema algum em questão de segurança, se é você quem vai programar, logo não colocaria nome de variável igual, não ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada haver... primeiro, colocando o @ na frente de suas funções, você está inibindo o erro ou aviso que a função trará, tem que programar dentro das regras para que não aja nenhum aviso e/ou erro no sistema, utilize variáveis, não tem problema algum em questão de segurança, se é você quem vai programar, logo não colocaria nome de variável igual, não ?

Mas ai que tá, eu sugeri a arroba (@mysql_close) pq não foi dita nenhuma solução para este caso(fazer a condição de conexão aberta sem variavel).

Eu teria q verificar alguns arquivos meus que fazem conexão com bancos de dados, colocar as variaveis e no final do script colocar um mysql_close para cada variável ou todas.

Ao invés de ter este trabalho, a minha dúvida seria: q condição utilizaria para verificar se tem uma conexão aberta qualquer, e então fechar todas.

 

pq diabos você criaria uma outra variavel no meio do script com nome de $conexao_db ????????????????

criar uma variavel que recebe uma conexao com nome de senha e f*** né ...

você tem que regular seu jeito de trabalhar, todos os projetos existem variaveis que acabam sendo unicas por acusa da sua importancia ...

eu nunca tentei isso, mas tem como atribuir uma conexao SQL em uma constante ?

se tiver, pronto, faça isso.... nao tem como atribuir outro valor a constante mesmo... mas acho que é forçar a barra d+

Pq eu poderia ta fazendo uma conexão com outro banco de dados com a mesma variavél ($conexao). Eu citei um exemplo generico sobre a variavel senha. E já tive problemas com ela em session, na hora de ter um campo de formulario com o mesmo nome da variavel.

 

Enfim, acho melhor colocar @mysql_close(); que vai fechar tudo. A questão da arroba é pq eu tenho páginas q não fazem conexão e tem um require("fechar_conexao.php");

Logo, a fim de evitar aquela mensagem de erro caso não tenha conexõa aberta eu colocaria a arroba.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kra, acho que se implementar o padrão Singleton, seus problemas acabam...

 

Você vai trabalhar somente com uma conexão aberta por base de dados e quando quiser matar a conexão é só destruir o objeto.

 

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.