Neste meu primeiro artigo mostro como criar uma classe para se conectar e executar consultas a um banco de dados. Este modo de programar facilita nossa vida organizando nosso código em funções e classes.
Primeiramente meus agradecimentos aos meus colegas de correria:
Clodonil Honório Trigo, Gaby Lima Dias e ao grande
amigo e irmão Rodrigo Rodrigues =).
Bom vamos lá.
Pessoal, esses exemplos que estarei postando aqui foram tempos de
trabalho em cima de projetos e necessidades que no decorrer do tempo
foram criadas para melhor aproveitamento do código e rapidez na
finalização de um sistema.
1a etapa
Vamos montar uma classe chamada querys:
class querys {
var $ip = "localhost";
var $user = "root";
var $pass = "";
var $database = "projeto";
}
Nessa classe montamos ela com 4 variáveis: $ip, $user,
$pass e $database. Nelas estão armazenadas as configurações
necessárias para acesso ao banco, isso é legal quando acontece de alguém
querer configurar seu sistema, aí fica tudo bem à vista do cara, que
não precisa ter medo de mexer nos códigos =).
Agora vamos montar algumas funções chamadas:
Selects()
AbreConexao()
FechaConexao()
// arquivo querys.php
class querys {
var $ip = "localhost";
var $user = "root";
var $pass = "";
var $database = "projeto";
function AbreConexao() {
$this->conn = mysql_connect ($this->ip,$this->user,$this->pass); // aqui declaramos a var conn como variável da classe
mysql_select_db ( $this->database, $this->conn);
// esse "$this->" ele e utilizado para referenciar uma variável da classe
}
function FechaConexao() {
mysql_close ($this->conn); // aqui fecho a conexão se baseando na variável acima declarada
}
function Selects($config) {
$this->AbreConexao(); // Abrimos a conexão
$conf = explode(",",$config) // Aqui explodimos e jogamos em array
if ($conf[0] == "select_login") {
$select = mysql_query("SELECT * FROM users WHERE login LIKE '".$conf[1]."' AND pass LIKE '".$_POST[pass]."' ");
/*
perceba que aqui estou pegando a variável $conf[1] que será
passada para a função contendo o login e para o password estou
pegando a variável direto do form. Esses dois exemplos são bem
legais.. aí você escolhe qual seguir, eu prefiro o esquema utilizado
no password.
*/
$result = mysql_num_rows($select);
}
if ($conf[0]=="select_permissao") {
// aqui verifico permissão do usuário "administrador, usuário e etc"
$select = mysql_query("SELECT * FROM users WHERE login LIKE '".$_POST[login]."' ");
$coluna = mysql_fetch_array($select);
$result = $coluna[permissao];
}
$this->FechaConexao(); // Fechamos a conexão
return $result; // aqui fica o retorno de todas as condicionais
}
}
Perceba que ao declarar a função, declaro uma variável chamada $config
e depois explodo a mesma, ao invés de fazer $var1, $var2, $var3. E
adivinha porque? Simples, isso foi feito porque você não fica preso a uma
limitada quantidade de variáveis, sendo assim poderá passar quantas variáveis
quiser =), para ajustar a função ao seu gosto e adicionar quando quiser.
Isso é legal quando você está montando um projeto muito grande, pode até
chamar a mesma condicional umas 3 vezes. Se você for adicionar uma
variável terá que alterar em todas? hehehe
Pronto, para finalizarmos montamos o seguinte:
// arquivo index.php
<?
include("querys.php");
$querys = new querys;
if ($_POST[acao_form] == "verificar_usuario") {
if ($querys->Selects("select_login,$_POST[login]")) {
if ($querys->Selects("select_permissao")=="administrador") {
header("Location:admin.php");
} else {
header("Location:usuario.php");
}
} else {
echo "Você não está no banco";
}
}
?>
Beleza pessoal, esse primeiro artigo de muitos é para mostrar como
podemos simplificar ao máximo nosso trabalho árduo =), esse ainda está
bem simples, no próximo vamos começar a montar um sistema de login com
permissão de usuários, restrições e etc. Esse artigo foi só para nos
familiarizarmos =)
Então mande perguntas e me mandem também o que gostariam de estar vendo
no próximo artigo... inté =)
[2] Comentário enviado por jitto em 06/10/2004 - 08:29h
Puxa vida, eu queria muito aprender trabalhar com classes em PHP. Por enquanto só sei trabalhar no modo procedural!!!
- Alguém pode me indicar um livro ou um curso on-line de PHP avançado?
Da forma que o Guilherme mostrou aqui, para mim ainda ficou meio abstrato, preciso de mais detalhes a respeito.
[3] Comentário enviado por messala em 19/05/2005 - 11:57h
ow... muito bom essa sua aula! Mexo com php tem pouco mais de 1 ano e nunca tinha usado classes... soh com isso ae eu aprendi bastante. Sem dúvida vai me ajudar muito!
[5] Comentário enviado por removido em 19/05/2005 - 12:14h
OPa, pode postar aqui mesmo. Lembrando que esse exemplo que contribui aqui, além de ser bastante antigo, demonstra conceitos básicos de se utilizar classes em um sistema.
[10] Comentário enviado por denes em 24/05/2007 - 16:27h
Oi, Guilherme!
Parabéns pelo artigo. Sou iniciante em PHP, mas já fiz curso de programação Delphi, onde tive contado com POO e sou completamente pró-POO. E o uso de classes é extremamente importante nesse modelo de programação. Espero ver mais artigos assim!
Abçs.