Jump to content
MoiDVAec

Trata erro na conexão com banco de dados no PHP

Recommended Posts

Boa tarde,

 

Agradeço desde já a ajuda! Estou precisando conecta ao banco de dados e minha classe da o seguinte erro:

 

Citar

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\Painel_de_controle\classes\banco.class.php on line 65

 Já fiz varias pesquisas ja fiz varias correções mas o erro persisti. Alguem pode me ajuda a entender onde errei?

 

Segue o código:

 

<?php
abstract class banco{

    //PROPRIEDADES
    public $servidor = "localhost:84";
    public $usuario = "root";
    public $senha = "";
    public $nomeBanco = "ourlady";
    public $conexao = NULL;
    public $dataset = NULL;//resultados das pesquisas
    public $linhasAfetadas = -1;

    //METODOS
    public function __construct(){
        $this->connecta();

    }//fim construtor

    public function __destruct(){
        if($this->conexao != NULL):
            mysqli_close($this->conexao);
        endif;
    }//fim destrutor

    public function connecta(){
        $con = $this->conexao = mysqli_connect($this->servidor,$this->usuario, $this->senha) or die($this->tratarErro(__FILE__,__FUNCTION__,mysqli_errno(),errorInfo(),True));
        mysqli_select_db($con,$this->nomeBanco) or die($this->tratarErro(__FILE__,__FUNCTION__,mysqli_errno(),errorInfo(),True));
        mysqli_set_charset($con,'utf8');


    }// fim connecta

    public function inserirDados($objeto){
        $conec = $this->connecta();
        $erro = $this->tratarErro(__FILE__,__FUNCTION__);

        $sqlInserir = "INSERT INTO ".$objeto->tabela." (";
        //loop inseri valores dentro do comando sql para ser inserido no banoc de dados
        for($i=0; $i<count($objeto->valores); $i++):
            $sqlInserir .= key($objeto->valores);
            //validação para inserir a virgula no meio do loop
            if($i < (count($objeto->valores)-1)):
                $sqlInserir .= ", ";
            else:
                $sqlInserir .= ") ";
            endif;
            next($objeto->valores);
    endfor;
    reset($objeto->valores);
    $sqlInserir .= "VALUES (";
    for($i=0; $i<count($objeto->valores); $i++):
        // validação tenaria para puxar o segundo valor da array
        $sqlInserir .= is_numeric($objeto->valores[key($objeto->valores)]) ? 
            $objeto->valores[key($objeto->valores)] :
            "'".$objeto->valores[key($objeto->valores)]."'";
        //validação para inserir a virgula no meio do loop
        if($i < (count($objeto->valores)-1)):
            $sqlInserir .= ", ";
        else:
            $sqlInserir .= ");";
        endif;
        next($objeto->valores);
    endfor;
    echo $sqlInserir;
    $query = mysqli_query($conec, $sqlInserir);

    return $query or $erro;
    }// fim inserir daddos

    

    public function tratarErro($arquivo=NULL, $rotina=NULL, $numErro=NULL, $msgErro=NULL, $geraExcept=FALSE){
        if($arquivo==NULL) $arquivo="não informado";
        if($rotina==NULL) $rotina="não informado";
        if($numErro==NULL) $numErro=mysqli_connect_errno($this->conexao);
        if($msgErro==NULL) $msgErro=mysqli_connect_error($this->conexao);
        $resultado = 'Ocorreu o seguinte erro:<br/>
                        <b>Arquivo</b>'.$arquivo.'<br/>
                        <b>Rotina</b>'.$rotina.'<br/>
                        <b>Erro</b>'.$numErro.'<br/>
                        <b>Mensagem</b>'.$msgErro;
        if($geraExcept==False):
            echo($resultado);
        else :
            die($resultado);
        
        endif;

    }// fim tratarerro

}// fim da claas banco




?>

 

 

Share this post


Link to post
Share on other sites

O método connecta não retorna nada, logo, no código abaixo, a variável $conec é nula:

$conec = $this->connecta();

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By peterstefan
      Boa tarde, quero fazer anúncios em um projeto e quero mostrar dentro de um foreach, mais quero mostrar a cada 5 blocos e depois mostro o anuncio do google.. isso tem algum novo para que eu possa pesquisar?
    • By violin101
      Caros amigos.
       
      saudações...
       
      Por favor PRIMEIRAMENTE peço desculpa em recorrer ao auxílios dos amigos, mas sou novato em CODEIGNITER.
       
      Através de muita Leitura e pesquisa sobre o tema, tenho conseguido desenvolver o que gostaria de executar.
       
      Me deparei com o seguinte problema que não estou conseguindo executar com êxito.
       
      Preciso criar uma FUNÇÃO onde o Sistema após o USUÁRIO efetuar o LOGIN possa realizar uma VALIDAÇÃO de Data e Hora.
      Por exemplo:
       
      Na base de dados tenho campos distintos como:
        `dataInicio` DATE NOT NULL ,
        `horaInicio` TIME NOT NULL ,
        `dataFim` DATE NOT NULL ,
        `horaFim` TIME NOT NULL ,
       
      Pergunta:
      como faço uma função para que o sistema possa comparar e calcular o PRAZO de VENCIMENTO com a DATA e HORA atual, ou seja:
      prazo para encerrar
      dataFim: 19/04/2019
      horaFim: 12:00
      ---------------------------------------
      vencimento
      dataAtual: 19/04/2019
      horaAtual: 12:01
      ==========================
       
      Se a Data/Hora já venceu o Sistema muda o STATUS para 2 (prazo encerrado).
       
      Grato,
       
      Cesar
       
       
       
       
       
       
    • By emersonbrs
      string(77) "[ 1, { "mensagem": "Recarga", "pin": "", "nsu": 1096 } ]" tenho esse array como eu faço para pegar mensagem com json_decode, exemplo se eu fizer assim
      <?php $array = file_get_contents( 'http://www.json-generator.com/api/json/get/bTLlkwcgOa?indent=2' ) ; $obj = json_decode($array); echo $obj->1->mensagem; ?> dessa forma da erro
       
       
      syntax error, unexpected '1' (T_LNUMBER), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in
       
      como resolver ?
    • By guzulino
      Eu tenho uma dúvida meio tosca, mas as páginas que eu estou colocando no site não estão carregando, quando acesso o site aparece uma página padrão de domínio reservado para um cliente HostGator, mas quando vou no cPanel fazer upload dos arquivos, eles não são carregados no site, tentei colocar na pasta "public_html" com o nome de index, mas mesmo assim ela não é carregada na página principal do site. Gostaria de saber qual a pasta em que devo colocar os arquivo das páginas principais para serem carregados. Eu já trabalhei com hospedagem na Locaweb, mas quis testar outra hospedagem para ver como funciona, mas até agora não deu muito certo, adquiri o domínio na semana passada então ele já deveria funcionar teoricamente.
    • By Anderson Ronilson Xavier
      Olá a todos gostaria da ajuda dos colegas estou em um projeto de site landing page  usando o plugin construtor de sites chamado themify ultra e não estou conseguindo uma galeria de imagens igual ao cliente está me pedindo que responsiva e com um menu que tenha as opções por exemplo "todas maçã banana laranja " se eu clicar em maçã a galeria ocultaria as bananas e Laranja e se eu clicar em todas e voltaria a apresentar todas as frutas ... Desculpa o jeito de explicar ... Mas galeria não estou conseguindo achar nada que me ajude a opção do themify ultra foi do próprio cliente que já tinha e acabei topando por fazer usando ele mesmo mas no site do themify não achei nenhum pluguin interessante a galeria deles é a padrão do WordPress será que teria como eu usar alguma outra os colegas tem alguma sugestão? 
       Vou deixar um site que o cliente deixou de modelo de como ele gostaria de que dele ficasse
       
      www.levelmont.com.br
       
      Grato pelo ajuda dos colegas.
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.