Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

PHP back-end conexão Mysql

Fiz uma aplicação em PHP (desenvolvimento próprio) para trabalhar como back-end.

Função que gera a conexão

function conn(){
    $servidor = "xxx";
    $usuario = "xxx";
    $senha = "xxx";
    $bancodedados = "xxx";
    $mysqli = new mysqli($servidor, $usuario, $senha, $bancodedados);
    if ($mysqli->connect_errno) {
         echo "Falha ao conectar com o banco de dados: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
        return false;
    }
    $mysqli->set_charset("utf8");
    return $mysqli;
}

Função que realiza as consultas

    function exeSql($sql){
        $conexao = conn();
        if(!$conexao)
            return false;
        $resultado = $conexao->query($sql) or die($conexao->error."<br />".$sql);
        $qtderegistros = mysqli_num_rows($resultado);
        $minhaarray = array();
        while($row = mysqli_fetch_assoc($resultado)) {
            array_push($minhaarray, $row);
        }
        $retorno = $minhaarray;
        $resultado->free();
        $conexao->close();
        return $retorno;
}

O retorno dessas funções são solicitados via JS no decorrer do carregamento dessas páginas. Porém tem certas situações em que a função exeSql() é executada dentro de um foreach com um loop gigante, as vezes com mais de mil vezes. E pra cada loop ele realiza a conexão com a função conn() pra gerar o resultado através da função exeSql(). E isso tem sobrecarregado meu servidor so sentido de conexões.

Minha dúvida seria de que outra forma eu poderia fazer isso (talvez através de classes ou se de alguma forma consigo gravar a conexão em uma sessão) pra que essa consulta excessiva não aconteça. Lembrando que a solicitação é via JS, então na minha pagina possuem vários arquivos JS requisitando essas informações.

Espero ter sido claro ao explica minha duvida. rsrs. Obrigado!

1 resposta
solução!

Oi Gustavo, tudo bom?

Como o script é chamado a partir de um for em javascript (client-side) e sua conexão está sendo gerenciada no php (server-side) é impossível você guardar essa conexão. O ideal na verdade é você chamar o script PHP uma unica vez com todos os dados processados no JS pra consumir uma unica conexão. Assim, você evita sobrecarregar o servidor =)

Abraço!