Ir para conteúdo

POWERED BY:

Arquivado

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

LuanMartinsTI

PHP Não se conecta ao banco de dados

Recommended Posts

Não sei ao certo se aqui é a area correta, mas como o erro acontece em uma função do php acredito que seja;

no meu site estou tendo o seguinte problema,varias vezes do dia o usuario tenta entrar no site pelo dominio dele, e o site exibe aquele erro, não foi possivel se conectar ao banco de dados, até para mim exibe isso as vezes, mas se eu colocar o ip entra na hora, então o erro me parece no servidor não sei ao certo, eu uso a empresa sucuri.net/pt/ para gerenciar os servidores dns, mas eles dizem que o problema não é com ele, e na minha função tambem não é, vou exibir ela aqui

define('HOST', '127.0.0.1');
define('USER', 'root');
define('PASS', '');
define('DBSA', 'banco');


define('WS_ACCEPT', 'accept');
define('WS_ERROR', 'error');
define('WS_INFOR', 'infor');

ini_set('display_errors',0);
ini_set('display_startup_erros',0);
error_reporting(0);

function __autoload($Class){
    $dirName = 'class';
    
    if(file_exists("{$dirName}/{$Class}.class.php")){
              
        require_once "{$dirName}/{$Class}.class.php";
        
    }elseif(file_exists("../{$dirName}/{$Class}.class.php")){
              
        require_once "../{$dirName}/{$Class}.class.php";   
        
    }elseif(file_exists("../../{$dirName}/{$Class}.class.php")){
              
        require_once "../../{$dirName}/{$Class}.class.php";       
        
    }elseif(file_exists("../../../{$dirName}/{$Class}.class.php")){
              
        require_once "../../../{$dirName}/{$Class}.class.php";  
        
    }elseif(file_exists("../../../../{$dirName}/{$Class}.class.php")){
              
        require_once "../../../../{$dirName}/{$Class}.class.php";  
        
    }else{
              
        die("Erro ao incluir {$dirName}/{$Class}.class.php <hr>");
    }
}


function exibeMensagens($Msg, $ErrNo){
          if($ErrNo == WS_ERROR){
                    $CssClass = WS_ERROR;
          }
          else if($ErrNo == WS_INFOR){
                    $CssClass = WS_INFOR;
          }
          else if($ErrNo == WS_ACCEPT){
                    $CssClass = WS_ACCEPT;
          }
          echo "<p class='trigger {$CssClass}'>{$Msg}</p>";
}

function verificaVazio($array){
          $error = "";
          foreach ($array as $indice => $valores){
                    if(empty($valores)){
                              $error .= ucfirst($indice). "<br>";
                    }
          }
          if(empty($error)){
                    return true;
          }
          else{
                    die(" Os seguintescampos estão vazios: {$error}");
          }
}


function tempo_ligado(){
          $data1 = date('2017/01/13');
          $data2 = date('Y-m-d'); 
          $timestamp1 = strtotime( $data1 );
          $timestamp2 = strtotime( $data2 );
          $dias = 0;
          while ( $timestamp1 <= $timestamp2 )
          {
                 $timestamp1 += 86400;
                 $dias++;
          }
          return $dias;
}

class Conn.class faz a conexão

<?php

abstract class Conn {
    
    private $Host = HOST;
    private $User = USER;
    private $Pass = PASS;
    private $Dbsa = DBSA;
    /* @var PDO */
    private $Connect = null;
    
    
    public function getConn(){
        return $this->Conectar();//chamando a conexão com o metodo e retornando Connect
    }
    
    private function Conectar(){
        try{
            if($this->Connect == null):
                $dsn = 'mysql:host='.$this->Host.';dbname='.$this->Dbsa;
                $options = [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'];
                $this->Connect = new PDO($dsn, $this->User, $this->Pass, $options);
            endif;
        } catch (PDOException $e){
            exibeMensagens("Código do erro: {$e->getCode()}<br>"
            . "Mensagem : {$e->getMessage()}<br>"
            . "Arquivo: {$e->getFile()}<br>"
            . "<font style='color:red;'>Motivo: Não foi possivel se conectar ao banco de dados! verifique a configuração no arquivo inc/config.inc.php</font><br>"
            . "Linha : {$e->getLine()}", WS_ERROR);
            die;
        }//finaliza catch
        return $this->Connect;
    }//finaliza método Conectar
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você disse que o problema é intermitente, talvez se no momento em que você colocou o IP e entrou na hora, se colocasse o host também entraria
O que $e->getMessage(); esta te dizendo? Provavelmente as evidencias estão ai.

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.