Ir ao conteúdo
  • Cadastre-se

PHP Problemas com função na classe de conexão


Posts recomendados

Alguém poderia me ajudar com a função listar, estou quebrando a cabeça e não vai.

Estou tentando aprender OO com PHP e Mysqli

<?php
class conexaoMysql{
    protected $servidor;
    protected $usuario;
    protected $senha;
    protected $banco;
    protected $conexao;
    protected $qry;
    protected $dados;

    public function __construct(){
        $this->servidor     ="localhost";
        $this->usuario        ="root";
        $this->senha        ="";
        $this->banco        ="exemplo";
        self::conectar();
    }

    function conectar(){
        $this->conexao = mysqli_connect($this->servidor, $this->usuario, $this->senha, $this->banco);
        if ($this->conexao->connect_error)
            die('Erro ao conectar (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
        
    }

    function executarSql($sql){
        $this->qry = $this->conexao->query($sql) or die ("Erro ao executar o comando: $sql".mysqli_errno());
        $numRows = $this->qry->num_rows;
        return $this->qry;
    }

    function listar($qr){
        $this->dados = $this->conexao->fetch_assoc($qr);
        return $this->dados;
    }
}

?>

<?php
include_once ("conexaoMySQL3.php");

    $con = new conexaoMysql();
    $qry = $con->executarSql("SELECT * FROM pessoa");
    
    while($linha = $con->listar($qry)){
        echo $linha["nome"]."<br>";
    }

?>

 

Link para o comentário
Compartilhar em outros sites

@anuar_garib 

 

O problema está na função "listar()", você está tentando usar o método fetch_assoc na conexão com o banco de dados  e não no resultado, e também o método fetch_assoc não espera nenhum argumento.

 

Fazendo uma alteração na sua função ela deve funcionar.

function listar($qr){
	$this->dados = $qr->fetch_assoc();
	return $this->dados;
}

Ou

function listar(){
	$this->dados = $this->qry->fetch_assoc();
	return $this->dados;
}

 

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!