Classe para manipulação do BB (MySQL)

Publicado por André Lourenço Pedroso 26/02/2007

[ Hits: 4.664 ]

Homepage: http://apedroso.blogspot.com

Download acessaBasedeDados.class.php




Classe para facilitar o acesso às informações de uma tabela.

==> Mandem dicas para melhorias: ainda está simples, porém muito útil.

  



Esconder código-fonte

<?php
// *
// * @author Andre Lourenco Pedroso - alp.pedroso@gmail.com
// *
// * @date 10 de Janeiro de 2007
// *

/**
 * Manipulação de bando de dados.
 *
 * @method
 * conectar(), desconectar(), executa($sql), consultar($sql), primeiraLinha(),
 * ultimaLihna(), proximaLinha(), voltarLinha(), conteudoDaLinha().
 *
 */
class acessoBaseDeDados
{
   private $con;
   private $resultado;
   private $nlinhas;
   private $linha;
   private $dados;

   private $host;
   private $user;
   private $pass;
   private $bd;


   function acessoBaseDeDados($host="", $user="", $pass="", $bd="")
   {
      $this->host = $host;
      $this->user = $user;
      $this->pass = $pass;
      $this->bd   = $bd;
   }

   /**
    *
    * Abre a conexao.
    *
    * @access public
    *
    */
   public function conectar()
   {
      $this->con = mysql_connect($this->host, $this->user, $this->pass)or die('Não foi possível conectar: ' . mysql_error());
      mysql_select_db($this->bd) or die('Não foi possível selecionar o banco da dados');
   }


   /**
    *
    * Fecha a conexao.
    *
    * @access public
    *
    */
   public function desconectar()
   {
      mysql_close($this->con);
   }

   /**
    *
    * Manipula dados da tabela atravez de SQL.
    *
    * @access public
    *
    */
   public function executa($sql)
   {
      mysql_query($sql, $this->con) or die ("Erro ao executar o comando! ->".mysql_error());
   }

   /**
    *
    * Carrega a consulta e aponta para primeira linha.
    *
    * @access public
    *
    */
   public function consultar($sql)
   {
      $this->resultado = mysql_query($sql, $this->con);
      if ($this->resultado)
      {
         $this->nlinhas   = mysql_num_rows($this->resultado);
         $this->linha     = 0;
      }
   }

   /**
    *
    * Retorna a primeira linha da consulta feita pelo metodo navegar.
    *
    * @access public
    * @return Array
    *
    */
   public function primeiraLinha()
   {
      $this->linha = 0;
      $this->conteudoDaLinha();
      return $this->dados;
   }

   /**
    *
    * Retorna a ultima linha da consulta feita pelo metodo navegar.
    *
    * @access public
    * @return Array
    *
    */
    public function ultimaLinha()
    {
       $this->linha = $this->nlinhas-1;
       $this->conteudoDaLinha();
       return $this->dados;
    }

   /**
    *
    * Retorna a proxima linha de acordo com o valor de $linha.
    *
    * @access public
    * @return Array
    *
    */
   public function proximaLinha()
   {
      if($this->linha < $this->nlinhas-1)
      {
         $this->linha++;
         $this->conteudoDaLinha();
         return $this->dados;
      }
      else
      {
         return NULL;
      }
   }

   /**
    *
    * Retorna a linha anterior de acordo com o valor de $linha.
    *
    * @access public
    * @return Array
    *
    */
   public function voltarLinha()
   {
      if($this->linha > 0)
      {
         $this->linha--;
         $this->conteudoDaLinha();
         return $this->dados;
      }
      else
      {
         $this->conteudoDaLinha();
         return $this->dados;
      }
   }

   /**
    *
    * Aponta para a linha passada pelas funcoes que a chama e
    * grava o resultado em $dados.
    *
    * @access private
    *
    */
   private function conteudoDaLinha()
   {
      mysql_data_seek($this->resultado, $this->linha);
       $this->dados = mysql_fetch_array($this->resultado);
   }
}
?>

Scripts recomendados

Listando todos os Bancos de dados do servidor MySQl

Portal dh4v01

Sistema php com Sqlite

CannaBook

Formas de trazer dados da consulta utilizando as funções mysql_fetch_array e mysql_fetch_row


  

Comentários
[1] Comentário enviado por Rustin em 27/02/2007 - 11:34h

Bem, não querendo tirar o mérito de ninguém, acho que isso é reiventar a roda. Já temos várias aplicações que fazem esse trabalho muito bem, com suporte a vários SGDBs. Mas se o que se quer é uma solução simples para MySQL, pode ser uma boa :)

Um abraço.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts