Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 25 postagens
Mais de 25 postagens
Tópico Autor
Mensagens: 43
Nome: Vinicius
Descrição do site: Hospedagem de sites
Localização: santa rosa de viterbo
Contato:

4 Tipos de Conexão

22-04-2010 13:26

Olá pessoal este é meu primeiro post aqui , mas vamos ao que interressa e mão na massa.

Hoje vou demostrar como criarmos uma classe mãe de multiplos banco de dados e como usarmos ela seja sua própria classe ou em classe que sejam herdeiras suas. hehehe

Bom aqui está o codigo fonte:

Banco.class.php(Classe Pai)

<?php class Banco {         var $Con;         var $GetCon;         var $DirCon;         var $QueryLista;         var $OracleQueryLista;         var $TotalLista;         var $TotalRegistros;         var $Lista;         var $ExeQuery;         var $ExecQueryOracle;         var $TipoCon = 1;                                         var $Server = "localhost";          var $Database ="oferta";                  var $UserDb = "roxzin";          var $PassWDDb = "12345";          var $Erro_db = "Erro ao se conectar ao Banco de Dados.!!";         var $CloseDatabase;         var $DirecHome = "/path/pro/diretorio/do/oracle";                  /*# - Construtor da classe - #*/         function Banco() {                         $this->ConexaoODBC();         }                  /*# - Metodo que conecta oo banco de dados e é chamado pelo Construtor da classe - #*/         function ConexaoODBC(){                 switch($this->TipoCon){                          //MSSQL (MICROSOFT SQL SERVER)                         case 1:                         $this->Con = mssql_connect($this->Server,$this->UserDb,$this->PassWDDb) or die($this->Erro_db);                         $this->GetCon = mssql_select_db($this->Database,$this->Con);                         break;                         //MYSQL                         case 2:                         $this->Con = mysql_connect($this->Server,$this->UserDb,$this->PassWDDb) or die($this->Erro_db);                         $this->GetCon = mysql_select_db($this->Database,$this->Con);                         break;                         //POSTGRESQL                         case 3:                                  $this->Con = pg_connect("dbname=$this->Database port=5432 host=$this->Server user=$this->UserDb password=$this->PassWDDb")                                           or die($this->Erro_db);                         break;                                    //ORACLE 8I,9I,10G                         case 4:                         $this->Con = @ocilogon($this->UserDb, $this->PassWDDb, $this->Server)                                           or die($this->Erro_db);                         $this->DirCon = putenv("ORACLE_HOME=".$this->DirecHome."");                         $this->GetCon = putenv("ORACLE_SID=".$this->Database."");                         break;                  }                                          }                  /*# - Executa query de banco - #*/         function ExecDatabase($StringSQL){                 switch($this->TipoCon){                         case 1:                                 if($this->ExeQuery = mssql_query($StringSQL, $this->Con)){                                         return true;                                 }else{                                         return false;                                 }                         break;                          case 2:                                 if($this->ExeQuery = mysql_query($StringSQL, $this->Con)){                                         return true;                                 }else{                                         return false;                                 }                         break;                         case 3:                                 if($this->ExeQuery = pg_query($StringSQL, $this->Con)){                                         return true;                                 }else{                                         return false;                                 }                         break;                         case 4:                                 $this->ExecQueryOracle = ociparse($this->Con, $StringSQL);                         $this->ExeQuery = ociexecute($this->ExecQueryOracle);                         if($this->ExeQuery){                                         return true;                                 }else{                                         return false;                                 }                         break;                                          }         }                  /*# - Monta o objeto completo dos resultados da query - #*/         function ViewDatabase(){                 switch($this->TipoCon){                  case 1:                         if($this->Lista = mssql_fetch_array($this->ExeQuery)){                                         return TRUE;                                 }else{                                         return FALSE;                                 }                  break;                  case 2:                         if($this->Lista = mysql_fetch_array($this->ExeQuery)){                                         return TRUE;                                 }else{                                         return FALSE;                                 }                  break;                  case 3:                         if($this->Lista = pg_fetch_array($this->ExeQuery)){                                         return TRUE;                                 }else{                                         return FALSE;                                 }                  break;                  case 4:                         if($this->Lista = ocifetch($this->ExeQuery )){                                         return TRUE;                                 }else{                                         return FALSE;                                 }                  break;                 }         }                  /*# - Retorna o total de linhas afetadas - #*/         function TotalNumRegistros(){                 switch($this->TipoCon){                  case 1:                         $this->TotalRegistros = mssql_num_rows($this->ExeQuery);                  break;                  case 2:                          $this->TotalRegistros = mysql_num_rows($this->ExeQuery);                  break;                  case 3:                          $this->TotalRegistros = pg_num_rows($this->ExeQuery);                  break;                  case 4:                         $this->TotalRegistros = ocinumcols($this->ExeQuery);                  break;                 }                 return $this->TotalRegistros;          }                  /*# - Fecha conexão com o banco de dados - #*/         function CloseODBC(){                 switch($this->TipoCon){                         case 1:                                 $this->CloseDatabase = mssql_close($this->Con);                         break;                         case 2:                                 $this->CloseDatabase = mysql_close($this->Con);                         break;                         case 3:                                 $this->CloseDatabase = pg_close($this->Con);                         break;                         case 4:                                 $this->CloseDatabase = ocilogoff($this->Con);                         break;                 }         }                  /*# - Destrutor da classe - #*/         function __destruct(){                 @CloseODBC();         }          } ?>

Note que deixei alguns comentários referente ao que significa cada método e seus respectivos atributos, vale lembrar que está classe e altamente editável para seu uso.
note que ao instanciarmos nossa classe Banco, automaticamente seu construtor já faz a conexão baseado no servidor, login, senha e base de dados forncecidos dentro da classe, vale lembrar que estás variáveis que são para sua configuração:

$TipoCon = 1(Tipo de banco. Ex: 1- SQL server; 2- Mysql; 3- PostgreSql e 4- ORACLE);  $Server = "localhost"(Servidor);  $Database ="oferta"(Banco de dados); $UserDb = "roxzin"(Usuário); $PassWDDb = "12345"(Senha); 

Bom vejamos como usar esta classe de um modo simples em uma Seleção de Dados e Uma Inserção.

#teste_simples_selecao.php <?php  require_once(Banco.class.php)  $ExecDb = new Banco;   if($ExecDb->ExecDatabase("SELECT * FROM CLIENTE")){  while($ExecDb->ViewDatabase()){          echo $ExecDb->Lista['nome'].'<br>';  }  }  unset($ExecDb); ?> #teste_simples_insercao.php <?php  require_once(Banco.class.php)  $ExecDb = new Banco;   if($ExecDb->ExecDatabase("INSERT INTO CLIENTE (nome,email) VALUES ('Matheus Biagini','matheus@itcon.com.br')")){  echo "Inserido com sucesso!"  }else{  echo "Houve um erro!";  }  unset($ExecDb); ?>

Note que assim que Instanciamos a class Banco ela já faz a conexão com o banco de dados escolhido e assim no metodo ExecDatabase faz a execução da Query retornando verdadeiro ou false, bom assim que usamos o metodo ViewDatabase ele já acessa o atributo do metodo ExecDatabase trazendo nosso objeto populado com dados. Assim que executamos o atributo Lista['<nome do campo da tabela>'] ele já trás os dados.

Bom espero ter ajudado vocês, no meu proximo POST vou ensinar como usar esta classe em outras classe deixando assim um código flexivel e facil de alterar.

Obs: Não sei porque mas coloquei o código inteiro identado mas este forum zonea tudo heheh.


Abraços a todos.
Qualquer duvida é só postar.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17547
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

4 Tipos de Conexão

22-04-2010 14:20

Funcionando blz. :talk:
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado