Ir para conteúdo

Arquivado

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

Doebber

php+mysql orientado a objetos

Recommended Posts

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

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.