Ir para conteúdo

Arquivado

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

RogerTi

Encerrar conexao PDO no Mysql

Recommended Posts

Pessoal, quando se usa mysql_connect logo quando acaba precisa-se ou pelo menos eu uso usando mysql_close para encerrar a conexão, mas hoje em dia todos os meus sistemas são com PDO, e sempre que eu recebo ataques DDOS imprime o seguinte erro para mim SQLSTATE[HY000] [1040], at´´e entao pelo q vejo sobrecarrega o mysql, mas a pergunta e se precisa fechar conexao como no metodo dito.

 

E outra um pouco fora do assunto no MySQL server no arquivo my.ini tem a seguinte linha =>  max_connections=1000 esse 1000 e o numero de conexão ao mesmo tempo, eu posso colocar algum valor q seja infinito?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você cria uma nova instancia da classe PDO, a conexão fica atrelada ao tempo de vida do seu objeto. Para fechar a conexão, é preciso destruir o objeto, garantindo que todas as referências restantes para ele sejam excluidas, para fazer isso, basta atribuir null à variável que contém o objeto. Se você não fizer isso explicitamente, o PHP irá fechar automaticamente a conexão quando o script terminar.

Nota : Se existem ainda outras referências a este objeto (um PDOStatement, ou de outras variáveis que referenciam ao mesmo objeto), estes devem ser removidos também (atribuindo  null para a variável que faz referência a PDOStatement).


Fonte: http://php.net/manual/pt_BR/pdo.connections.php


Sobre max_connections, isso depende do seu servidor, se você tiver memoria e processamento para aguentar, pode aumentar até 100000

Fonte: https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_max_connections

Compartilhar este post


Link para o post
Compartilhar em outros sites

caso eu comece um objeto

 

$objeto = new $objeto();

 

ele encerra sozinho quando acaba o codigo, o eu preciso fazer o

 

$objeto = null como você disse, fiquei meio na duvida.

 

sobre o max_connection

 

meu dedicado tem processador intel i7 4.7ghz 64Gb de RAM

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 horas atrás, RogerTi disse:

ele encerra sozinho quando acaba o codigo, o eu preciso fazer o

 


Quando o script terminar o PHP encerra automaticamente. Porem se apos as ões do banco, você não for fazer outras coisas que necessite do PDO, é uma boa pratica liberar os recursos que não serão mais usados. 

Encerrando a conexão 

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

$sth = $dbh->query('SELECT * FROM foo');

$sth = null;
$dbh = null;

/*
	[...]
*/


Sobre a configuração do seu servidor, sei que é possível estimar a demanda de IO, memoria e processamento, na minha vivencia, só conheci um DBA, que também era engenheiro, que sabia fazer esses lculos. No geral, "é no olho"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não deve levar em consideração o efeito atípico de um ataque DDoS para "considerar/compreender" que suas conexões não estão sendo fechadas.

 

Um ataque DDoS pode gerar milhares de conexões simultâneas, estourando o limite estipulado. Logo, é inviável mensurar a quantidade de conexões que foram realizadas ao mesmo tempo.

 

O que você pode realizar é a "antecipação" do fechamento da conexão. No mais, todas as conexões são fechadas quando o script termina.

 

Conexões persistentes, por outro lado, são "cacheadas" para serem reutilizadas quando um script tentar se conectar utilizando as mesmas credenciais.

 

http://php.net/manual/pt_BR/pdo.connections.php

http://stackoverflow.com/questions/18277233/pdo-closing-connection

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

      Cesar.
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer ao auxílio dos amigos, mas preciso entender e resolver um problema.
       
      Tenho uma Rotina que o usuário seleciona os produtos que deseja para requerer ao setor responsável.
       
      O usuário escolhe um produto qualquer e Clicla em um button para incluir a lista.

      O problema que estou enfrentando é que após escolher o produto e teclar ENTER o Sistema já salva no BD.
       
      Gostaria de criar uma Tecla de Atalho, para quando incluir/escolher o produto na lista, o usuário tecla como exemplo:
      ALT+A  para agregar a lista
      ALT+S para salvar a lista de itens desejados.

      Assim, quando teclar enter, o sistema não dispara o GRAVAR na Base de Dados.

      Grato,

      Cesar
       
       
       
×

Informação importante

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