Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Foto:

php+mysql orientado a objetos

  • Por favor, faça o login para responder
1 resposta neste tópico

#1 Doebber

Doebber
  • Membros
  • 132 posts

Postado 30 julho 2011 - 18:57

so novo em php orientado a objetos
como eu fasso pra conectar somente uma vez a funcao?
por exemplo esse é meu codigo de conexao.
<?php 

class conexao{

	private $host  = "localhost"; 
	private $user  = "root"; 
	private $pass  = "pass";
	private $banco = "banco";
	private $connect;
	private $bds;

	function banco(){

	}

	function conectar(){
		$connect = mysql_connect($this->host,$this->user,$this->pass) or die("Erro na conexão com Servidor MySQL!");
		$bds = mysql_select_db($this->banco) or die("Banco de dados não encontrado!");
	}

	public function execSql($sql){
		$query = mysql_query($sql) or die
                        ("Erro ao selecionar a tabela. mysql_error()");
        return $query;
	}

	public function desconectar() {
        mysql_close($this->connect);
    }

    public function __destruct(){

    }

}

?>
e nas classes das outras funcões eu uso o seguinte codigo para chamar a função.
exemplo da classe produtos
class produtos{
	private $banco;
	
	public function produtos(){
		$this->banco = new conexao;
		$this->banco->conectar();
	}
///aki as funções
	public function __destruct(){
        $this->banco->desconectar();
        unset($this->banco);
        $this->banco = null;
    }
}


mas quando eu uso duas classes na mesma pagina da erro que não é possivel redeclarar a classe conexao.
"Cannot redeclare class conexao"
axo que isso ocorre porque em cada classe ele declara a classe conexao, como fasso pra declarar ela
somente uma vez? ou a funcao destruct n deveria resolver isso?

problema resolvido!

Editado por Andrey Knupp, 30 julho 2011 - 20:33 .
Remover 'Ajuda com' do título do tópico

  • 0

#2 Andrey Knupp Vital

Andrey Knupp Vital

    Web Developer

  • Moderadores
  • 4.434 posts

Postado 30 julho 2011 - 20:37

Pelo seu include. você deve estar usando 'include' direto, ou 'require', tente como 'include_once' ou 'require_once'.
Agora vai algumas dicas, se você tem um destrutor na classe, isso aqui não faz sentido:
 public function desconectar() {
        mysql_close( $this->connect );
 }

Você pode colocar o close, no bloco de código do destruct, fica bem melhor, também recomendo que utilize outros meios de conexão com o mysql, utilizando outras bibliotecas, como a MySQLi ou PDO.
  • 0




Publicidade

/ins>