Hoje vou ensinar como criar uma classe de conexão com o banco de dados utilizando a classe MySQLI. Vamos criar um novo projeto no NetBeans chamado
escola. Com o projeto criado, vamos agora criar uma classe chamada
conexao (só para lembrar não colocamos acento, espaços e nenhum caractere especial no nome de nossa classe), essa classe vai herdar atributos e métodos da classe MySQLI.
<?php
class conexao extends mysqli {
}
?>
Esta classe possui os seguintes atributos:
servidor, usuário, senha e
banco. Esses atributos são obrigatórios para realizar uma conexão como o SGBD MiSQL. Nossa classe ficará assim:
<?php
class conexao extends mysqli {
//atributos
public $servidor;
public $usuario;
public $senha;
public $banco;
}
?>
Como Classe
conexao possui os atributos com visibilidade
public, não precisamos criar os métodos
get e
set, isso significa que podemos atribuir valores diretamente em nossos atributos,
então vamos criar o método construtor, logo abaixo dos nossos atributos.
<?php
class conexao extends mysqli {
//atributos
public $servidor;
public $usuario;
public $senha;
public $banco;
//métodos
function __construct($servidor, $usuario, $senha, $banco) {
$this->servidor = $servidor;
$this->usuario = $usuario;
$this->senha = $senha;
$this->banco = $banco;
}
}
?>
Mas nosso método construtor apenas irá atribuir os valores quando
instanciarmos o objeto
conexao, isso não estabelece a conexão com o SGBD. Para estabelecer a conexão, devemos criar um
método conectar. O método
conectar utiliza o construtor da classe
pai, ou seja, o método construtor da classe
MySQLI. Para chamar o método construtor da classe MySQLI utilizamos o comando
parent.
<?php
class conexao extends mysqli {
//atributos
public $servidor;
public $usuario;
public $senha;
public $banco;
//métodos
function __construct($servidor, $usuario, $senha, $banco) {
$this->servidor = $servidor;
$this->usuario = $usuario;
$this->senha = $senha;
$this->banco = $banco;
}
public function conectar()
{
parent::__construct($this->servidor, $this->usuario, $this->senha, $this->banco);
}
}
?>
Nosso método
conectar já possibilita a conexão com o SGBD, mas caso aconteça algum erro? As boas práticas de programação exigem que os erros de tratados na aplicação, isso chama-se tratamento de
Exceções. Somente para lembrar, já expliquei tratamentos de exceções na postagem
Introdução a Orientação a Objetos no PHP - parte 3 .
<?php
class conexao extends mysqli {
//atributos
public $servidor;
public $usuario;
public $senha;
public $banco;
//métodos
function __construct($servidor, $usuario, $senha, $banco) {
$this->servidor = $servidor;
$this->usuario = $usuario;
$this->senha = $senha;
$this->banco = $banco;
}
public function conectar()
{
try
{
parent::__construct($this->servidor, $this->usuario, $this->senha, $this->banco);
if(mysqli_connect_errno() != 0)
{
throw new Exception('Erro ao conectar!');
}
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
}
?>
Agora vamos testar nossa classe
conexao, para isso, vamos
instanciar um objeto
conexao no mesmo arquivo PHP, depois do fechamento da última chave da classe
conexao. Após instanciarmos essa classe, o nosso exemplo estará completo. Observação: na linha 36 colocamos o @ na frente da chamado do método conectar para não exibir as mensagens de alerta do MySQL.
<?php
class conexao extends mysqli {
//atributos
public $servidor;
public $usuario;
public $senha;
public $banco;
//métodos
function __construct($servidor, $usuario, $senha, $banco) {
$this->servidor = $servidor;
$this->usuario = $usuario;
$this->senha = $senha;
$this->banco = $banco;
}
public function conectar()
{
try
{
parent::__construct($this->servidor, $this->usuario, $this->senha, $this->banco);
if(mysqli_connect_errno() != 0)
{
throw new Exception('Erro ao conectar!');
}
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
}
//testar a conexão
$con = new conexao('127.0.0.1', 'root', '', 'bdEscol');
@$con->conectar();
?>
Disponibilizo o vídeo referente a esta aula. Qualquer dúvida ou comentário é só postar. Bom estudo!
Nenhum comentário:
Postar um comentário
Comentemm, vamos compartilhar experiências!