Não vou entrar em detalhes sobre Orientação a Objetos pois a definição não muda muita coisa… Vou resumir: Programação orientada a objetos (ou, mais conhecida como POO) se resume ao uso de classes, um recurso um tanto quanto interessante do PHP.
Classes são como funções, só que com variáveis e funções próprias.. Geralmente usadas para agrupar um numero X de funcionalidades/métodos… Vamos criar, passo-a-passo, uma classe para as funções básicas do MySQL.
Primeiro, definimos a classe com nome MeuSQL:
< ?php
class MeuSQL {
}
?>
Agora vamos definir algumas variáveis com valores padrões:
< ?php
class MeuSQL {
// Propriedades padrões
var $servidor = '127.0.0.1';
var $usuario = 'root';
var $senha = '';
var $banco = 'meusite';
var $conexao = null;
}
?>
Na verdade, devemos chamar estas variáveis como “propriedades” (nome que se dá para as variáveis da classe). Toda propriedade de classe, para manter a compatibilidade com o PHP 4, precisa ter a palavra “var” antes.
Vale lembrar que, fora da classe, essas propriedades não vão existir.. Nem após você chamar a classe. Isso deixa as coisas mais seguras. ![]()
Agora vamos definir o primeiro método. “Método” é nome que se dá para uma função dentro de uma classe.
< ?php
class MeuSQL {
// Propriedades padrões
var $servidor = '127.0.0.1'; // Endereço
var $usuario = 'root'; // Usuário
var $senha = ''; // Senha
var $banco = 'meusite'; // Banco de dados
// Outras variáveis para uso interno:
var $conexao = null;
var $query = null;
function conecta() {
$this->conexao = mysql_connect($this->servidor, $this->usuario, $this->senha);
$status = mysql_select_db($this->banco, $this->conexao);
return $status;
}
}
?>
Criamos um método que fará a conexão com o MySQL… Quem já estudou um pouco sobre MySQL sabe que a função mysql_connect() precisa de três parâmetros, nessa ordem: o servidor (endereço), o usuário e a senha… Repare que usamos $this->servidor e não $servidor, vou explicar por que:
Quando queremos pegar o valor de uma propriedade de uma classe, fazemos referência a própria classe, por isso o $this. Sem isso não é possível pegar o valor da propriedade.
Preste atenção: quando definimos variáveis dentro das funções (métodos) não é necessário usar o $this, pois, nesse caso, estamos falando de variáveis e não de propriedades. Sei que é um pouco complicado… Mas ninguém disse que POO é pra qulquer um 8-).
Agora vamos definir mais três métodos para as outras funções básicas do MySQL:
< ?php
class MeuSQL {
// Propriedades padrões
var $servidor = '127.0.0.1'; // Endereço
var $usuario = 'root'; // Usuário
var $senha = ''; // Senha
var $banco = 'meusite'; // Banco de dados
// Outras variáveis para uso interno:
var $conexao = null;
var $query = null;
function conecta() {
$this->conexao = mysql_connect($this->servidor, $this->usuario, $this->senha);
$status = mysql_select_db($this->banco, $this->conexao);
return $status;
}
function consulta($query) {
$this->query = mysql_query($query);
return $this->query;
}
function resultado() {
return mysql_fetch_assoc($this->query);
}
function registros() {
return mysql_num_rows($this->query);
}
}
?>
Podemos dizer que a nossa classe está pronta… Salve este arquivo como MeuSQL.php. Agora vamos ver um exemplo de uso e depois, comentá-la toda:
< ?php
// Inclui o arquivo com a classe
include("MeuSQL.php");
// Instancia/chama a classe MeuMySQL
$sql = new MeuSQL();
// Conecta-se ao banco de dados usando os valores padrões
$sql->conecta();
// Define e executa uma query SQL
$busca = "SELECT * FROM `noticias` WHERE `id` > 0 LIMIT 10";
$sql->consulta($busca);
// Descobe e exibe o total de registros encontrados
$total = $sql->registros();
echo "Total de registros: " . $total;
echo "<hr />";
// Exibe dados de cada registro
while ($dados = $sql->resultado()) {
// Aqui o array $dados terá o valor de cada coluna do registro
echo "- Titulo da notícia: " . $dados['titulo'];
echo "<br />";
}
?>
Viu como as classes podem simplificar tudo na sua vida?
Agora, por fim, fiz alguns ajustes e comentei cada método da classe para ficar mais fácil de entender:
< ?php
/**
* MeuSQL
* Classe personalizada de uso do MySQL
*/
class MeuSQL {
// Propriedades padrões
var $servidor = '127.0.0.1'; // Endereço
var $usuario = 'root'; // Usuário
var $senha = ''; // Senha
var $banco = 'meusite'; // Banco de dados
// Outras variáveis para uso interno
var $conexao = null;
var $query = null;
/**
* Função para fazer a conexão com o MySQL
*/
function conecta() {
$this->conexao = mysql_connect($this->servidor, $this->usuario, $this->senha);
$status = mysql_select_db($this->banco, $this->conexao);
return $status;
}
/**
* Função para fazer uma consulta no MySQL
*/
function consulta($query) {
$this->query = mysql_query($query);
return $this->query;
}
/**
* Função para retornar cada resultado da consulta
*/
function resultado() {
return mysql_fetch_assoc($this->query);
}
/**
* Função que retorna o total de resultados encontrados
*/
function registros() {
return mysql_num_rows($this->query);
}
}
?>
Se quiser, pode fazer o download do arquivo com a classe e o exemplo de uso.
Não falei nem 1/10 do poder da orientação a objetos, mas fique certo de que o seu uso é recomendado, e deixa o código mais seguro além de mais rápido e (pra alguns) mais bonito.
Espero que tenham gostado… Qualquer dúvida (e eu sei que serão muitas) podem deixar seu comentário.
Abraços e até a próxima! ![]()
Você também vai gostar de ler:
- Usando o MySQLi Orientado a Objetos
- Como criar um Sistema de Login com Níveis de Permissão
- Criando um sistema de login com PHP e MySQL
- Criando um sistema de logins com classe no PHP – Parte 1
- Contador de visitantes online em PHP e MySQL
Postado em MySQL, PHP, Tutoriais
Com as tags Ajuste, Banco de Dados, Busca, Classe, Classes, Código, Conexão, Download, Funcionalidade, Funções, MySQL, Orientação a Objetos, Parâmetros, PHP, POO, Resultados, Root, Scripts, Senha, Servidor, SQL, Variáveis
Escrito por Thiago Belem
Gostou desse artigo?
Não se esqueça de assinar o RSS e divulgue-o para o mundo:
