Fechando ou Reutilizando conexão com Mysql usando PDO - PHP

29/02/2016

0

Bom, meu script estava funcionando perfeitamente até eu colocar ele online, bastou alguns minutos de sossego e tranquilidade para o erro apareccer.

"parecia bom demais pra ser verdade".

O problema agora é o seguinte, toda vez que eu tento executar um código meu me retorna este erro.

SQLSTATE[42000] [1226] User 'u968736533_doshe' has exceeded the 'max_user_connections' resource (current value: 3)


Isso acontece porque toda vez que faço alguma coisa com meu banco de dados eu utilizo uma função que criei para se conectar ao banco de dados.

segue o código da função.

function conexao(){

	$var = array('host' => HOST,'usuario' => USER,'senha' => PASSWORD,'dbname' => BD,);

	$opcoes = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8');
	
	try {
		@$con = new PDO("mysql:host=".$var['host'].";dbname=".$var['dbname'],$var['usuario'],$var['senha'], $opcoes);
		return $con;
	} catch(PDOException $e){
		echo $e->getMessage();
		die();
	}

}


Bom, para utilizar a função eu faço da seguinte forma.

conexao()->prepare($sql);


Mas agora eu estou na dúvida de como encerrar essa conexão ou mesmo como reaproveitar a mesma uma vez aberta, para que não haja várias conexões abertas de uma vez.
Alguém com uma ideia para ajudar?
Cleyton Caetano

Cleyton Caetano

Responder

Posts

29/02/2016

Claudio Lopes

Bom pelo que estou vendo, você deve ter um CRUD, põe um evento destrutor na sua classe, e fecha a conexão com o banco de dados.
Responder

29/02/2016

Cleyton Caetano

Bom pelo que estou vendo, você deve ter um CRUD, põe um evento destrutor na sua classe, e fecha a conexão com o banco de dados.

Ainda estou perdido sobre o que fazer com meu código! Todos os métodos de destruição que utilizei e pesquisei na internet não funcionaram!
Responder

29/02/2016

William

Tenta implementar a conexão no padrão singleton http://www.devwilliam.com.br/php/pdo-conexao-seguindo-singleton-php.
Responder

29/02/2016

Cleyton Caetano

Tenta implementar a conexão no padrão singleton http://www.devwilliam.com.br/php/pdo-conexao-seguindo-singleton-php.


Interessante seu código!

deixa eu entender, sua classe funcionaria com minhas funções normalmente? pelo que retorno a conexão PDO com a função conexao() para outras funções como InsertBD e UpdateBD, se eu fizer assim terei um resultado true no final das contas?

//usando seu código
$conexao = new Conexao ();

//usando na minha funcao
$conexao->prepare($sql);
Responder

29/02/2016

William

 /* Require no script contendo a classe */  
 require_once 'conexao.php'; 
 
 /* Variável recebendo instância do objeto PDO */  
 $pdo = Conexao::getInstance();  

$pdo->prepare($sql);
Responder

29/02/2016

Cleyton Caetano

 /* Require no script contendo a classe */  
 require_once 'conexao.php'; 
 
 /* Variável recebendo instância do objeto PDO */  
 $pdo = Conexao::getInstance();  

$pdo->prepare($sql);


Entendi, vou reescrever meu código e volto a postar aqui o resultado!
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar