Publicidade

Entre para seguir isso  
Seguidores 0
Doebber

php+mysql orientado a objetos

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
Remover 'Ajuda com' do título do tópico
0

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.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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
Entre para seguir isso  
Seguidores 0