Crie um documento com o nome classes.inc.php (apenas exemplo didático)
adicione as seguintes variaveis e defina valores a elas
<?php
define("DB_HOSTI",
"HOST");
// host de conexão com o MySQL define("DB_USERNAMEI",
"USUARIO");
// nome do usuário para conexão define("DB_PASSWORDI",
"SENHA");
// senha do usuário para conexão define("DB_DATABASEI",
"BD");
// nome do bd ?>
então ai estamos apenas passando valor para as variaveis!!
Hora de criar a classe, ja vou criar também 2 variaveis que utilizarei:
<?php
// classe de acesso ao banco de dados
{
var $dbi;
var $query;
}
Nessa primeira função vou "abrir" o banco de dados com as variaveis que passei:
<?php
// função que starta o MySql, sem ela é impossivel conectar ao banco
function open()
{
// conecta com o bd com as variáveis prédefinidas
$this->
dbi =
mysql_connect(DB_HOSTI, DB_USERNAMEI, DB_PASSWORDI
);
if (!$this->dbi) {
}
echo "Erro na seleção do banco de dados!";
}
}
?>
Essa função serviu para startar o banco, agora sempre usaremos ela em nossos codigos. Agora a função que fecha o banco de dados:
<?php
// fecha a conexão com o bco de dados
function close()
{
}
?>
Após usamos nosso banco é importante fechar a conexão com a função acima. A função abaixo executa a query no banco, ou seja nossos selects, updates e deletes.
<?php
// executa uma string SQL
function query($sql)
{
return $this->query;
}
?>
Essa é uma parte bacana, essa função lista quantas linhas teve o resultado da consulta, vao ver no exemplo de como é util essa função.
<?php
// retorna quantas linhas aquela query resultou
function linhas()
{
}
?>
Se a de cima era bacana, essa é mais ainda, ela lista os atributos da nossa tabela, o resultado propriamente dito, bastando passar a linha e coluna q desejamos:
<?php
// retorna o conteúdo do campo e linha escolhidos
function result($linha, $campo)
{
}
?>
Vou demonstrar 2 modos de trabalhar pra vcs, então essas duas funções fazem parte do modo que utilizo:
<?php
// mesma coisa que o result() vou demonstrar a diferença no uso
function retorno($linha, $campo)
{
}
// mesma coisa que o linhas() vou demonstrar a diferença
function resultado()
{
}
?>
Então nossa classe ficou assim:
<?php
/*
- Classes para acesso a bancos de dados
- Jorél Luiz Precoma
*/
define("DB_HOSTI",
"HOST");
// host de conexão com o MySQL define("DB_USERNAMEI",
"USUARIO");
// nome do usuário para conexão define("DB_PASSWORDI",
"SENHA");
// senha do usuário para conexão define("DB_DATABASEI",
"BD");
// nome do bd
{
var $dbi;
var $query;
// função que starta o MySql, sem ela é impossivel conectar ao banco
function open()
{
// conecta com o bd com as variáveis prédefinidas
$this->
dbi =
mysql_connect(DB_HOSTI, DB_USERNAMEI, DB_PASSWORDI
);
if (!$this->dbi) {
}
echo "Erro na seleção do banco de dados!";
}
}
// fecha a conexão com o bco de dados
function close()
{
}
// executa uma string SQL
function query($sql)
{
return $this->query;
}
// retorna quantas linhas aquela query resultou
function linhas()
{
}
// retorna o conteúdo do campo e linha escolhidos
function result($linha, $campo)
{
}
// mesma coisa que o result() vou demonstrar a diferença no uso
function retorno($linha, $campo)
{
}
// mesma coisa que o linhas() vou demonstrar a diferença
function resultado()
{
}
}
?>
O primeiro modo de se utilizar essa classe o mais "primitivo", é fazer as querys dentro do código, a desvantagem é que você nao consegue re-utilizar o codigo. No exemplo abaixo temos uma tabela de usuarios com nome, login e senha:
<?php
include("classes.inc.php");// inclui a class
$db =
new MySQL;
// instancia a class q deseja utilizar $db->open(); // abre o banco de dados
$sql = "SELECT nome, login, senha FROM usuarios
WHERE login = '" .
addslashes($_POST["login"]) .
"' AND // faz um select no BD
$db->query($sql);
// se existir mais d um resultado linhas() conta o numero d linhas
if ($db->linhas() > 0) {
// result eu peço a linha 0 e a coluna 1 no meu caso login
$_SESSION["login"] = $db->result(0, 1);
}
?>
Assim você pode imaginar infinitas formas de se utilizar como essa pra listar vários dados:
<?php
for ($i = 0; $i < $db->linhas(); $i++) {
echo "nome: " .
$db->
result($i,
0) .
" login: " .
$db->
result($i,
0) .
"<br>";
}
?>
Legal né, espero que aproveitem essas classes!
Esse modo de utilizar a classe de acesso ao banco de dados é um pouco mais trabalhoso no começo, mas poupa muito tempo depois para re-utilizar. Primeiro eu defino uma classe:
<?php
class Sistema
extends MySQL//essa classe tera os selects, updates e delete tds nela {
// variavel login vai receber um valor
function SetLogin($l)
{
$this->login = $l;
}
function conUsuario()
{
$sql = "SELECT nome, login, senha FROM usuario ";
if (!
empty($this->
login)) { $sql .=
" WHERE login = '" .
addslashes($this->
login) .
"'";
}
return $this->consulta;
}
}
?>
Na função conUsuario eu coloquei o empty, então se for setada a variavel $this->login ele vai fazer o where, isso serve se eu quizer buscar dados de um usuário apenas, se não setar essa variável ele vai ler todos registros.
Salvo o documento como "classesSite.inc.php" e no meu código da página que desejo consultar faço assim:
<?php
include "classes.inc.php";
include "classesSite.inc.php";
$db = new Sistema;
$db->open();
$db->conUsuario();
for ($i = 0; $i < $db->resultado(); $i++) {
// aqui eu apresentos os resultados sem filtro
echo $db->
retorno($i,
0) .
"<br>";
}
// aqui é com o filtro de login
$db->SetLogin("jorel");
$db->conUsuario();
for ($i = 0; $i < $db->resultado(); $i++) {
// aqui eu apresentos os resultados com filtro
echo $db->
retorno($i,
0) .
"<br>";
}
?>
Bom pessoal espero que tenham gostado e que possam usar bem essas classes, peço desculpas se não consegui passar bem o conteúdo, mas vamos aprendendo, se alguém desejar trocar experiencias e dar sugestões fiquem a vontade!!
Obrigado a todos e até a próxima!!