Conexão com o Banco de Dados

Posted on 24 de novembro de 2011

0


Caro amigo desenvolvedor. Quando você vai programar especificamente a conexão com o banco de dados, com o que mais você se preocupa?

Praticidade? Segurança? Padronização de seus acessos? Não ter de se preocupar em decorar a sintaxe dos códigos SQL?

Por que não ter tudo isso num lugar só? Se você não está preso aos padrões de alguma empresa, mas tem uma certa (ou total) autonomia, creio que vai achar bastante útil a biblioteca CONECTAR, Produzida por WEB Master – O Chuck Norris da Web

“Bobagem! A net tá cheia de exemplos assim!”

Garanto que uma como essa você não acha… Só para mencionar um exemplo:

Para fazer uma simples pesquisa numa tabela, faça:
$listar = new conectar(“TABELA_PRODUTO”);
$produtos = $listar->Execute();

Pronto! Agora é só usar foreach para mostar o conteúdo de $produtos, assim:
foreach($produtos as $produto) echo $produto->PRO_NOME;

“Gostei! Vamo que vamo!”

Bom, primeiro vamos explicar o método de conexão:
$variavel = new conectar(“TABELA”);

Logo de cara você se conecta não só ao banco, mas já informa em qual, ou quais, tabela(s) vc irá fazer a pesquisa ou execução.
Ex.: $listar = new conectar(“TABELA_PRODUTO, TABELA_CATEGORIA”);

Obs.: Sempre use aspas duplas nos valores que as variáveis receberão, pois o tratamento completo da SQL receberá variáveis.

Agora, vamos entender o uso das variáveis publicas: TYPE, TABLE, CAMPOS, ORDER, WHERE, LIMIT, ONEROW e SQL

TYPE: É o tipo da execução SQL. Ela suporta os valores: SELECT, UPDATE, DELETE e INSERT. Por padrão, o valor será SELECT.
Ex.: $alterar->type = “UPDATE”;

TABLE: Tabela ou Tabelas em que será feita a execução do comando SQL. Note que assim que você se conecta, você pode opcionalmente já declarar a tabela. Nos exemplos abaixo, o resultado será o mesmo.
Ex1.: $listar = new conectar(“TABELA_PRODUTO”);
Ex2.: $listar = new conectar(); $listar->tabela = “TABELA_PRODUTO”;

CAMPOS: Array contendo os nomes dos campos do banco de dados em suas chaves e seus respectivos valores.
Ex1.: $alterar->campos = $_POST;
Ex2.: $alterar->campos[‘PRO_NOME’] = “Bola de Basquete”;

ORDER: Ordem em que os registros aparecerão.
Ex1.: $listar->order = “PRO_NOME”;
Ex2.: $listar->order = “PRO_DATA_CAD DESC”;
Ex3.: $listar->order = “RAND()”;

WHERE: Flitragem. Acho que já entenderam a idéia… ;)
Ex1.: $alterar->where = “PRO_CAT = CAT_ID”;
Ex2.: $alterar->where = “PRO_ID > 30 AND PROD_ID < 40”; LIMIT: Limite de registro. Para 1 registro use “0,1”. OneRow: Usado apenas em SELECT. Defina “TRUE” se sua pesquisa envolver apenas 1 linha, para evitar ter de usar foreach. Padrão é “FALSE”. Ex.: $listar->OneRow = true;

SQL: Após utlizar Execute(), essa variável conterá a sintaxe completa do comando SQL usado em sua pesquisa. Muito útil para se conferir erros.
Por exemplo, no código:
$listar = new conectar(“TABELA_PRODUTO, TABELA_CATEGORIA”);
$listar->where = “PRO_CAT = CAT_ID”;
$listar->order = “PRO_NOME”;
$listar->Execute();

echo $listar->sql;

O retorno será:
SELECT * FROM TABELA_PRODUTO, TABELA_CATEGORIA WHERE PRO_CAT = CAT_ID ORDER BY PRO_NOME

Evidentemente que, no momento em que se usa Execute(), o comando terá sido executado no banco, a menos que haja erros em sua pesquisa.

Método Execute(): Executa a quey, retornando um objeto em caso de OneRow = true, ou uma array com os objetos pra cada linha do banco, ou true em caso de execução bem sucedida para type != “SELECT”.

Método ZeraVars(“TABELA_NOVA”): Caso queira usar uma única variável para as várias execuções, basta usar esse método para zerar as variáveis. Se desejar também trocar de tabela, é só declarar. Para manter a mesma da conexão, é só deixar vazio.
Ex1.: $listar->ZeraVars();
Ex2.: $listar->ZeraVars(“TABELA_CATEGORIA”);

Mas, a grande sacada dessa biblioteca não é nas pesquisas, que já facilita bastante, mas principalmente nas execuções no banco.

Segue um exemplo de INSERT e em seguida um de UPDATE. Imagine que você está recepcionando os dados enviados por um form. Neste form os campos já possuem os mesmos nomes que os campos das tabelas. Ex.:

INSERT
require “config/conecta.php”;
$bdn = new conectar(“TABELA_PRODUTOS”);
// Convertendo a data pro padrão sql “Y-m-d”
$_POST[‘PRO_DATA_CAD’] = eregi_replace(‘([0-9]{2})/([0-9]{2})/([0-9]{4})’, ‘\\3-\\2-\\1’, $_POST[‘PRO_DATA_CAD’]);
$bdn->campos = $_POST;
$bdn->type = “INSERT”;
$bdn->Execute();

echo $bdn->sql;

Retorno: INSERT INTO TABELA_PRODUTOS (PRO_NOME, PRO_DATA_CAD, PRO_VALOR) VALUES (:PRO_NOME, :PRO_DATA_CAD, :PRO_VALOR)

UPDATE
$bdn->ZeraVars();
$_POST[‘PRO_DATA_CAD’] = eregi_replace(‘([0-9]{2})/([0-9]{2})/([0-9]{4})’, ‘\\3-\\2-\\1’, $_POST[‘PRO_DATA_CAD’]);
$id = $_POST[‘PRO_ID’];
//Excluindo o post PRO_ID para não gerar erro.
unset($_POST[‘PRO_ID’]);
$bdn->where = “PRO_ID = $id”;
$bdn->campos = $_POST;
$bdn->type = “UPDATE”;
$bdn->Execute();

echo $bdn->sql;

Retorno: UPDATE TABELA_PRODUTOS SET PRO_NOME = :PRO_NOME, PRO_DATA_CAD = :PRO_DATA_CAD, PRO_VALOR = :PRO_VALOR WHERE PRO_ID = 3

Obs: Essa biblioteca faz um tratamento nos dados quando recebido, substituindo “:CAMPO” pelo seu respectivo valor. Para maiores detalhes, pesquise sobre a biblioteca PDO do PHP, utilizada nessa biblioteca que vos disponibilizo.

Espero que essa biblioteca lhes sirva de ajuda. O código da mesma está bem explicado. Porém, qualquer dúvida, é só entrar em contato através do mural dessa página.

Clique aqui para baixar a biblioteca. (Em caso de erro, copie e cole a url http://is.gd/tCSvh7 no seu navegador)

Retirado de @WebMaster – O Chuck Norris da WEB!

Posted in: Banco de Dados