Ir para conteúdo

POWERED BY:

Arquivado

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

Carutcho

Classe de Conexão com php + mysql

Recommended Posts

Pô hj eu postei em um forum que sempre posto essa classe de BD, eu montei a um tempo atás q eu achei bem legal então resolvi postar aqui tb.

 

Bem, como eu enrolo mt e falo muito antes de postar alguma coisa, dessa vez resolvi ser mais direto e vou postar logo o código rss ;).. ele ja está com a documentação nos comentários.

 

 

 

absss

 

<?php
##################### DOCUMENTAÇÃO ##########################
/*

@ Desenvolvida por: Reinaldo Torres : Carutcho
@ carutchows@gmail.com

---> VARIÁVEIS <---


   bd	-> variavel de conexão com o banco de dados
   banco -> variável que informa o banco a ser utilizado
  

---> MÉTODOS <---


- conecta -> metodo que cria uma conexão com o banco de dados
  sintaxe: conecta()

- query -> metodo que executa uma query e retorna o resultado da Query caso contrário, retorna FALSE
  sintaxe: query(sql)
			 *sql - > Query que queira utilizar, Parâmetro Obrigatório.

- linhas -> Retorna o numero de linhas de uma determinada query caso contrário, retorna FALSE
  sintaxe: linhas(sql)
			 *sql - > Query que queira utilizar, Parâmetro Obrigatório.

- resultFetch -> Faz o retorno de uma query através de um array, Caso não aja retorno ou aja erro, retorna FALSE
	 sintaxe: resultFetch($sql)
		  *sql -> Query que queira utilizar, Parâmetro Obrigatório.
		  
- select -> Retorna um array com os resultados de um Select , Caso não aja retorno ou aja erro, retorna FALSE
	 sintaxe: select(camp,tab,[cond])
		  *camp -> Campos da tabela que deseja selecionar, separados por virgula. Parâmetro Obrigatório.
		  *tab  -> Tabela no qual deseja fazer a consulta. Parâmetro Obrigatório.
		  *cond -> Condição para retorno do select. Parâmetro Opcional					

- insert -> Executa uma Insersão no banco de dados, Retorna TRUE ou FALSE
	 sintaxe: insert(camp,tab,vals,[cond])
		  *camp -> Campos da tabela que devem ser inseridos valores, separados por virgula.  Parâmetro Obrigatório.
		  *tab  -> Tabela que deve ocorrer a insersão.  Parâmetro Obrigatório.
		  *vals -> Valores que devem ser inseridos no banco,separados por virgula.  Parâmetro Obrigatório.
					 Obs.: Os dados devem ser setados na mesma ordem dos campos.
		  *cond -> Condição para que seja inserido. Parâmetro Opcional		  

- update -> Executa uma atualização em de um ou mais registros no banco. Caso não aja retorno ou aja erro, retorna FALSE
	 sintaxe: update(camp,tab,vals,[cond])
		  *camp -> Campos que devem ser atualizados. Parâmetro Obrigatório.
		  *tab  -> Tabela que deve ocorrer a alteração.  Parâmetro Obrigatório.
		  *vals -> Valores que devem ser atualizados no banco,separados por virgula.  Parâmetro Obrigatório.
					 Obs.: Os dados devem ser setados na mesma ordem dos campos.
		  *cond -> Condição para que seja alterado. Parâmetro Opcional		  

- delete -> Remoção de um ou mais registros no banco , Caso não aja retorno ou aja erro, retorna FALSE
	 sintaxe: delete(tab,[cond])
		  *tab  -> tabela no qual quer remover registros . Parâmetro Obrigatório.
		  *cond -> Condição para remoção de registros.


--> padrão para documentar.

- insert ->
	 sintaxe:
		  *sql ->
		  
		  
*/
#############################################################

//** metodos da classe database



class database
{
	protected $bd;
	protected $banco;


	//metodo de conexão com o banco

	function database ($banco)
	{
		$this->banco=$banco;	
		$this->conecta ();	
	}
	  
	
	function conecta ()
	{
		if ($this->banco=='test')
		{	
			$this->bd = @mysql_connect('localhost','carutcho','bancoTeste') OR die("Falha de Conexão com  MySQL server!");	
//			echo @mysql_error($this->bd);
			$BD = @mysql_select_db($this->banco, $this->bd) OR die("Falha na Escolha do Banco de Dados.!");;
//			echo @mysql_error($this->bd);
		}
	}
	//metodo de execução de uma query
	function desconecta ()
	{				
		return @mysql_close($this->bd);	
	}

	//metodo de execução de uma query
   function query($sql)
   {
		   $this->conecta();	
		$var = @mysql_query($sql);
		return $var ?  $var : false;
		   $this->desconecta();		
   }

   // metodo para retornar a quantidade de linhas de uma query
   function linhas($sql)
   {
	 $this->conecta();  
		return @mysql_num_rows(@mysql_query($sql));
	   $this->desconecta();	
   }


   function resultFetch ($sql)
   {  
		   $this->conecta();  
		$res = self::query($sql);
		return $res ? @mysql_fetch_array($res) : false;			
		   $this->desconecta();		
   }


	function select($camp,$tab,$cond)
	{
		   $this->conecta();	
		if ( (isset($camp))&&(isset($tab))&&(isset($cond)) )
		{
			$sql = "select ".$camp." FROM ".$tab." WHERE ".$cond;
			return $this->resultFetch($sql);
		}
		elseif ( (isset($camp))&&(isset($tab))&&(!isset($cond)) )
		{
			$sql = "select ".$camp." FROM ".$tab;				
			return $this->resultFetch($sql);							
		}
		else
		{
			return false;
		}
		   $this->desconecta();		
	}

	function insert($camp,$tab,$vals,$cond)
	{
		   $this->conecta();

		if ($cond!='')
		{		
			$sql = "INSERT INTO ".$tab." (".$camps.") VALUES ('".str_replace(',','\',\'',$vals)."') WHERE ".$cond;
			$res = @mysql_query($sql);		
			return ( @mysql_affected_rows() )!=0 ? true : false;
		}
		elseif  ($cond=='')
		{				
			$sql = "INSERT INTO ".$tab." (".$camp.") VALUES ('".str_replace(',','\',\'',$vals)."')";
			$res = @mysql_query($sql);
			return ( @mysql_affected_rows() )!=0 ? true : false;
		}
		else
		{
			return false;
		}

		   $this->desconecta();		
	}

	function update($camp,$tab,$vals,$cond)
	{
		   $this->conecta();		

		$campos = explode(',',$camp);
		$valores = explode(',',$vals);
		$i=0;
		foreach( $campos as $key => $valor)
		{
			if ($i==0)
			{
				$atual .= $valor." = '".$valores[$i]."'";
			}
			else
			{
				$atual .= ",".$valor." = '".$valores[$i]."'";					
			}
			$i++;
		}		
		if ( $cond!='' )
		{		
			$sql = "UPDATE ".$tab." SET ".$atual." WHERE ".$cond;
			$res = $this->query($sql);
			return ( @mysql_affected_rows() )!=0 ? true : false;
		}
		elseif ( $cond=='' )
		{
			$sql = "UPDATE ".$tab." SET ".$atual;
			$res = $this->query($sql);
			return ( @mysql_affected_rows() )!=0 ? true : false;
		}
		else
		{
			return false;		
		}

		   $this->desconecta();		
	}
	function delete($tab,$cond)
	{
		   $this->conecta();
		if ( (isset($tab))&&(isset($cond)) )
		{		
			$sql = "DELETE FROM ".$tab." WHERE ".$cond;
			$res = $this->query($sql);
			return ( @mysql_affected_rows() )!=0 ? true : false;
		}
		elseif ( (isset($tab))&&(!isset($cond)) )
		{
			$sql = "DELETE FROM ".$tab;
			$res = $this->query($sql);
			return ( @mysql_affected_rows() )!=0 ? true : false;
		}
		else
		{
			return false;
		}
		
		   $this->desconecta();		
	}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem coisa ai que não é recomendada, como por exemplo o uso dos arrobas http://forum.imasters.com.br/public/style_emoticons/default/seta.gif "@" para ocultar erros. ta intupido de arrobas ai, tire elas e rode o código pra ver o que aparece.

 

poderia explicar para o pessoal também como usar a class, muita gente não vai entender.

 

é só umas observações.

 

Abraço ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala aee alaerte blzzzzzzzzz ?? :D

 

Po eu coloquei as @ em todo o código, pq esses erros de mysql não é legal passar para o usuário ver, eu retiro isso quando eu tenho que debugar, pq tipo, o usuário não precisa saber qual erro tecnico que deu no mysql, ele precisaria saber no caso que teve problemas no q ele tava fazendo por não conseguir por exemplo conectar ao banco.

 

Brigado mesmo pelas observações, realmente nem me liguei nisso e é um ponto importantíssimo, vou postar agora uns exemplos da classe sendo importada no php para o pessoal ver, sou meio novato nesse negócio de forum e acho q todo vaum entender tudo q escrevo rssss..

 

Mas antes tem uma correção no método de insert aqui está o novo código, o insert não tem necessidade de por condição então eu re-escrevi o metodo.

 

function insert($camp,$tab,$vals)
	{
   		$this->conecta();
	
		$sql = "INSERT INTO ".$tab." (".$camp.") VALUES ('".str_replace(',','\',\'',$vals)."')";
		$res = @mysql_query($sql);
		return ( @mysql_affected_rows() )!=0 ? true : false;

   		$this->desconecta();		
	}

 

Aqui em baixo to usando os métodos em várias situações diferentes para mostrar como funcionaria.

 

 

Instanciando a classe para usar os métodos dela passando como parâmetro o banco

obs: usuário, senha, porta e tudo passado na classe, coloquei dessa maneira para que se possa usar a mesma classe para bancos diferentes sem ter q criar varias classes.

Eu escrevi assim o código, pq eu tinha necessidade de fazer conexão em bancos diferentes e trabalhar com as 2 conexões ao mesmo tempo.

$bd = new database('test');

Executando uma query livre que retorna o nomes de uma tabela usando métodos "query" para execuar a query e o método "linhas" para pegar a quantidade de linhas

 

$sql = "select nome from tabela"
	$resultado = $bd->query($sql);
	if ($resultado!=false)
	{
		for ($i=0; $i<$bd->linhas($sql); ++$i)
		{
			echo "nome: ".mysql_result($resultado,$i)."<br>";
		}
	}

Fazendo o mesmo processo de cima só q com outros métodos da classe, o método select retorna um mysql_fetch_array(result), caso não tenha resultado retorno é false.

 

$resultado = $bd->select('nome','tabela');
	if ($resultado!=false)
	{
		while($rows = $resultado)
		{
			echo "nome : ".$resuldado['nome']."<br>";
		}
	}

 

mesmo exemplo só q usando condição no select e usando mais de 1 tabela

$resultado = $bd->select('nome','tabela a, tabela b','a.nome=b.nome and a.nome=carutcho');
	if ($resultado!=false)
	{
		while($rows = $resultado)
		{
			echo "nome: ".$resuldado['nome']."<br>";
		}
	}

 

Inserindo um registo numa tabela

$resultado = $bd->insert('nome,idade','tabela','carutcho,24');
		if ($resultado==true) echo "registro inserido com sucesso.";
		else echo "registro não inserido.";

Deletando todos os registros de uma tabela.

$resultado = $bd->delete('tabela','');
		if ($resultado==true) echo "registros removido com sucesso.";
		else echo "registros não removidos.";

Deletando alguns os registros de uma tabela.

$resultado = $bd->delete('tabela','nome=carutcho');
		if ($resultado==true) echo "registros removidos com sucesso.";
		else echo "registros não removidos.";

Os métodos do update não se serviriam mt ou teriam utilidades, pq eu usei ele para um caso especítico meu, meu cadastro eu postava todos os campos do formulário com os mesmos nomes que eu colocava na tabela, com algumas modificações para meu uso, então quando eu postava o formulário, eu separava todos os nomes com "," e todos os valores tb com a mesma ordem e depois utilizava esses métodos para fazer tudo direto pra mim, então eu achava isso mais prático, não sei se será útil pra todos.

 

Atualizando todos os registros de uma tabela.

$resultado = $bd->update('nome,idade','tabela','carutcho,24','')
		if ($resultado==true) echo "registros alterados com sucesso.";
		else echo "registros não alterados.";

 

Atualizando alguns os registros de uma tabela.

$resultado = $bd->update('nome,idade','tabela','carutcho,24','id=1 and idade<>24')
		if ($resultado==true) echo "registros alterados com sucesso.";
		else echo "registros não alterados.";

 

 

Outra observação, eu não trabalho com php tem 1 ano, essa classe ja foi escrita a um tempo e eu não testei todos os códigos, usei baseado pela que postei aqui, só tenho php + mysql no meu comp do trabalho só para estudo e como estou em casa não testei nada :(, mas creio que funfe assim mesmo.

 

Qualquer dúvida ou problema, poste aee q eu tento ajudar com o que precisar.

 

 

Absss rapaziada e mais uma vez, valeus pelas dicas e observações e espero tenham gostado da classe.

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.