Ir para conteúdo
Fórum Script Brasil
  • 0

Classe MySQL


Guest --Rodrigo --

Pergunta

Guest --Rodrigo --

Boa tarde pessoal.

Meu nome é Rodrigo e nunca postei aqui, mas por várias vezes em busca de soluções consegui acha-las aqui (mas por questão de tempo não acompanho o fórum com frequencia para conhecer o pessoal).

Fiz uma classe para trabalhar com MySQL, num primeiro momento ela parece meio inútil e sinônimo das funções originais com leves alterações, mas futuramente pretendo encrementar com algumas opções que acho viáveis, como por exemplo, eu receber um alerta quando ocorrerem erros no acesso ao banco ou tabelas, instegração com o postgre (caso seja necessário em outros projetos), etc.

Sinceramente não sou um gênio com classes, pelo contrário, estou apanhando bastante delas, então gostaria de postar aqui o código, e ver a opinião de vocês (melhorias, sugestões, opiniões em geral) pois acredito que será muito valioso. Claro, se vocês estiverem dispostos.

Valeu!

Rodrigo

<?

include "config.php";

class conexao {

 private $conexao;
 private $query;
 private $resultado;
 private $linhas;
 private $linhas_total;

 function conexao(){
  global $conf_sql; // AS CONFIGS VEM DE FORA DE OUTRO ARQUIVO
  $this->querys = array();
  $this->resultados = array();
  $this->conexao = @mysql_pconnect($conf_sql["endereco"], $conf_sql["usuario"], $conf_sql["senha"]) or die ($this->erro());
  @mysql_select_db($conf_sql["banco"], $this->conexao) or die ($this->erro());
 }

 function erro(){
  echo "Ocorreu um erro interno com o banco de dados, por favor, tente novamente dentro de alguns minutos.<br>";
  echo mysql_error(). " (" .mysql_errno(). ").<br>";
  exit;
 }

 function query($query){
  $this->query = @mysql_query($query, $this->conexao) or die ($this->erro()); 
  // SE FOR SELECT, AINDA NÃO ESTOU FAZENDO ESSA VERIFICAÇÃO
  $this->linhas = 0;
  $this->resultado = array();
  while($r = mysql_fetch_array($this->query)){
   array_push($this->resultado, $r);
  }
  $this->linhas_total = count($this->resultado);
  mysql_free_result($this->query);
 }

 function resultado(){
  if ($this->linhas <= $this->linha_total+1){ 
   $this->linhas++;
   return $this->resultado[$this->linhas-1]; 
  }
 }
    

}

// UTILIZAÇÃO

$c = new conexao();
$c->query("select * from produtos");

while($linha = $c->resultado()){
 echo $linha["nome"]. "<br>";
}

$c->query("select * from clientes");

while($linha = $c->resultado()){
 echo $linha["email"]. "<br>";
}

?>

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...