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

Classe Para Conexão Com Mysqli


Beraldo

Pergunta

Esta classe funcionará apenas no PHP 5.0 ou superior.

<?php
#############################################
#                                           #
# Autor: Roberto Beraldo Chaiben (Beraldo)  #
#      E-Mail: rbchaiben@gmail.com          #
#                                           #
#############################################

/*
   Classe para conexão com banco de dados MySQL usando a extensão MySQLi, disponível a partir do PHP 5.
   A classe contém o construtor de conexão, registrando os possíveus erros de conexão no arquivo db_errors.log, e o destrutor, para fechar a conexão. As demais fgunções de banco de dados são padrões da classe myslqi, devendo ser usadas, por exemplo, desta forma:
   
    $My = new MySQLiConnection();
    $My->query();


   Caso você não tenha um arquivo de inicialização que defina as constantes para conexão com o banco de dados e o caminho para o diretório dos arquivos de logs de erro, descomente a parte do código que usa a função define() e configure-a com as informações para conexão.

*/

// Constantes paea conexão com o banco de dados:
/*
define ("DB_SERVIDOR", "localhost");
define ("DB_USUARIO", "root");
define ("DB_SENHA", "asxz123");
define ("DB_NOME", "testes");
define ("LOGS_PATH", "logs/");
*/


class MySQLiConnection extends mysqli
{
    public function __construct()
    {
        try
        {
            //@mysqli_connect (DB_SERVIDOR, DB_USUARIO, DB_SENHA, DB_NOME);
            parent::__construct (DB_SERVIDOR, DB_USUARIO, DB_SENHA, DB_NOME);
            if (mysqli_connect_errno() != 0)
                throw new Exception (mysqli_connect_errno() . " - " . mysqli_connect_error());
        }
        catch (Exception $db_error)
        {
            $mensagem = $db_error->getMessage();
            $arquivo = $db_error->getFile();
            $data = date ("Y-m-d H:i:s");
            $ip_visitante = $_SERVER['REMOTE_ADDR'];
            
            if (!file_exists (LOGS_PATH))
                mkdir (LOGS_PATH);
            
            // mensagem que será salva no arquivo de logs do banco de dados
            $log = $data . " | " . $mensagem . " | " . $arquivo . " | " . $ip_visitante . "\r\n\r\n";
            error_log ($log, 3, LOGS_PATH . "db_errors.log");
            echo "Erro ao conectar ao banco de dados MySQL. O erro foi reportado e o administrador do sistema tomará as devidas providências.";
            exit;
            
        }
    }
    
    
    public function __destruct()
    {
        if (mysqli_connect_errno() == 0)
            $this->close();
    }
    
}

?>
Forma de usar:
$My = new MySQLiConnection();// conecta-se automaticamente ao servidor MySQL
$sql = $My->query ("Select * From tabela");// a função query() é nativa da classe mysqli

while ($f = $sql->fetch_object())
{
    echo $f->nome . "<br />";
}

$sql->close();// libera a memória usada na consulta

// a conexão é fechada automaticamente no fim do script.

Mais detalhes sobre a extensão MySQLi:

http://br2.php.net/manual/en/ref.mysqli.php

[]'s

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...