Desenvolvimento - PHP

PHP: Criação e uso de uma classe para conexão com o banco de dados

Para os programadores em PHP que utilizam constantemento a base de dados MySQL (como eu), criei uma classe específica para este gerenciamento. A intensão é tornar a manipulação de dados do B.D. dentro do código muito fácil e eficiente.

por Willian Soares



Para os programadores em PHP que utilizam constantemento a base de dados MySQL (como eu), criei uma classe específica para este gerenciamento. A intensão é tornar a manipulação de dados do B.D. dentro do código muito fácil e eficiente.

Para aprender e utilizar a classe conexao é importante ler atentamente este documento.
Qualquer dúvida ou comentário, basta enviar um email para wfsoares@unimep.br ou wildsoares@bol.com.br A classe conexao permite aos usuários de B.D. MySQL uma interação muito simples e eficiente com o banco de dados.
Veja abaixo o codigo da classe conexao, salve o como "connect_db2.php" em seus arquivos.

id = mysql_connect("$servidor", "$usuario", "$senha") or die ("Problemas ao conectar ao banco de dados!"); mysql_selectdb("$nomebd") or die ("Problemas ao selecionar o banco de dados!"); } function executa($sql="") { //Executa uma query no bd e retorna os dados. if ($sql=="") { // Se não foi passada nenhuma SQL, $this->res = 0; // Sem resultados $this->qtd = 0; // Sem linhas } else { // Se passou uma SQL, $this->res = mysql_query($sql, $this->id); // Executa a query if ($this->res) // Se houve um resultado, $this->qtd = mysql_num_rows($this->res); // Armazena a qtd. de linhas } } function manipula($sql="") { //Executa uma query de DDL ou DML (manipulação de dados) if (mysql_query($sql, $this->id)) { return TRUE; // Se OK, retorna TRUE. } else { $this->erro = mysql_error($this->id); // Aramzena o último erro. return FALSE; } } function dados() { /* Busca os dados de uma linha do resultado e posiciona o ponteiro na próxima. Para listar os dados no código basta utilizar por exemplo: while ($obj->dados()) { echo $obj->data["nome"]; } */ if ($this->data = mysql_fetch_array($this->res)) { return TRUE; } else { return FALSE; } } function fecha() { // Encerra a conexão com o banco de dados. mysql_close($this->id); $this->id = ""; $this->res = 0; $this->qtd = 0; $this->data = ""; } } ?>

Para demonstrar o funcionamento da classe, vamos criar uma tabela no banco "test":

CREATE TABLE pessoas (
codpes INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
nome VARCHAR( 20 ) NOT NULL ,
idade SMALLINT DEFAULT "18" NOT NULL ,
INDEX (nome)
);

Pronto, agora veja como a classe funciona:
Não se esqueça de adicionar a instrução "require connect_db2.php" em seu código para carregar a classe.

Realizando a conexão com o banco:

$varcon = new conexao("127.0.0.1", "root", "suasenha", "test");
Observe que todos os dados de conexão são passados para classe no momento da criação do objeto,
uma sugestão minha é deixar estes dados como default no código da classe, assim se houver a necessidade
de trocar a senha ou o endereço do banco (isso não é muito difícil) não precisa sair alterando todos os códigos, basta alterar a classe.

Adicionando registros a tabela:

if ($varcon->manipula("insert into pessoas(codpes, nome, idade) values(0, "Odvaldo Cunha", 45)")) { echo "Sucesso na inclusão."; } else { echo "Erro: " . $varcon->erro; }
O método executa() deve ser utilizado para as SQLs de inserção ou alteração de dados (DML).
Se a operação for concluída corretamente retorna TRUE, se não retorna FALSE e memoriza o erro para
poder ser informado posteriormente como visto no exemplo.

Repita a instrução anterior adicionando outros nomes a tabela...

Listando os dados da tabela

$varcon->executa("select * from pessoas order by nome"); echo "

" . $varcon->qtd . " registro(s) localizado(s)."; while($varcon->dados()) { echo "
" . $varcon->data["codpes"] . ", " . $varcon->data["nome"] . ", " . $varcon->data["idade"] . " anos."; }
Para consulta de dados deve-se utilizar o método executa(), ele aplica a consulta e grava
no atributo "qtd" número de linhas retornadas.
Cada vez que o método dados() é chamado ele grava em "data" os registros capturados (como array)
e posiciona o ponteiro na próxima linha da consulta.;

Encerrando a conexão com o banco:

$varcon->fecha();
O método fecha() encerra a conexão com o banco de dados e zera os dados armazenados nos atributos.

Dúvidas, críticas e sugestões são sempre bem vindas.
Até a próxima.

Willian Soares

Willian Soares