Nas matérias anteriores demos alguns exemplos de scripts e falamos sempre de uma conexão prática, rápida e segura!
Para complementar estes assuntos sobre a elaboração de classes de conexão usando o PHP ao MySQL.
Em anexo enviamos os ficheiros usados nesta matéria, visando facilitar ainda mais seu aprendizado e testes.
Introdução à Criação Duma Classe De Conexão Entre o PHP E O MySQL
Quem está acostumado a trabalhar com a “conexão padrão”, certamente deverá se acostumar a trabalhar com este tipo de estrutura. Porém, visando facilitar seu aprendizado e facilidade ao gerenciar estruturas maiores, demos início a este tipo de atividade!
Através da estrutura orientada a objetos, você não apenas conseguirá dar suporte como desenvolver sistemas maiores.
Claro que existe no mercado diversas classes e frameworks espalhados na Internet, mas é essencial você saber como criar e dar o suporte devido manualmente!
Criando as Tabelas na Base de Dados
Antes de partirmos para a programação, abra o arquivo script-sql.txt (disponível no ficheiro em anexo) e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados.
OBS.: Neste ficheiro você deverá encontrar o código abaixo:
----- CRIANDO A TABELA tbl_usuarios -----
CREATE TABLE `tbl_usuarios` (
`id` int(11) NOT NULL auto_increment,
`nome` varchar(150) NOT NULL default '',
`email` varchar(150) NOT NULL default '',
`email2` varchar(150) default NULL,
`senha` varchar(50) NOT NULL default '',
`tipo` char(1) default NULL,
`status` varchar(10) NOT NULL default '',
PRIMARY KEY (`id`)
);
----- INSERINDO DADOS NA TABELA tbl_produtos -----
INSERT INTO `tbl_usuarios` VALUES (1,'Administrador','comandosusa@gmail.com',NULL,'123456','a','1');
INSERT INTO `tbl_usuarios` VALUES (2,'Quemuel Aquino','comandosusa@gmail.com','comandosusa@ymail.com','123456','c','1');
Em nossas matérias de MySQL utilizamos como padrão o MySQLFront. Caso você queira utilizar este programa, clique em SQL Editor e cole o conteúdo do script (conforme imagem abaixo).
Após criar a estrutura da base de dados, vamos agora gerar o ficheiro responsável pela conexão.
conexao_mysql.php
Podería fazer como em vários sites por aí! Apenas postar o script e você baixar, mas essa não é nossa intenção!
Como já disponibilizamos em anexo o ficheiro em anexo, vamos abordar passo a passo cada um dos scripts, efetuando comentários breves e precisos dentro do próprio ficheiro.
OBS.: Trata-se de um script simples e prático. Ideal para quem está começando a trabalhar com classes.
// Na linha abaixo chamaremos a classe "conexao" (que deverá ser fechada apenas no final do ficheiro).
class conexao {
// Nas linhas abaixo você poderá colocar as informações do Banco de Dados.
var $host = "localhost"; // Nome ou IP do Servidor
var $user = "root"; // Usuário do Servidor MySQL
var $senha = ""; // Senha do Usuário MySQL
var $dbase = "formulario"; // Nome do seu Banco de Dados
// Criaremos as variáveis que Utilizaremos no script
var $query;
var $link;
var $resultado;
// Instancia o Objeto para podermos usar
function MySQL(){
}
// Cria a função para efetuar conexão ao Banco MySQL (não é muito diferente da conexão padrão).
// Veja que abaixo, além de criarmos a conexão, geramos condições personalizadas para mensagens de erro.
function conecta(){
$this->link = @mysql_connect($this->host,$this->user,$this->senha);
// Conecta ao Banco de Dados
if(!$this->link){
// Caso ocorra um erro, exibe uma mensagem com o erro
print "Ocorreu um Erro na conexão MySQL:";
print "".mysql_error()."";
die();
}elseif(!mysql_select_db($this->dbase,$this->link)){
// Seleciona o banco após a conexão
// Caso ocorra um erro, exibe uma mensagem com o erro
print "Ocorreu um Erro em selecionar o Banco:";
print "".mysql_error()."";
die();
}
}
// Cria a função para "query" no Banco de Dados
function sql_query($query){
$this->conecta();
$this->query = $query;
// Conecta e faz a query no MySQL
if($this->resultado = mysql_query($this->query)){
$this->desconecta();
return $this->resultado;
}else{
// Caso ocorra um erro, exibe uma mensagem com o Erro
print "Ocorreu um erro ao executar a Query MySQL: $query";
print "
";
print "Erro no MySQL: ".mysql_error()."";
die();
$this->desconecta();
}
}
// Cria a função para Desconectar do Banco MySQL
function desconecta(){
return mysql_close($this->link);
}
}
?>
Agora vamos disponibilizar o script onde testaremos a funcionalidade do nosso sistema!
teste.php
Faremos neste script a mesma coisa do anterior!
Criaremos os comentários dentro do próprio código. Facilitando assim seus serviços.
// Abaixo chamaremos através do include a classe que conecta ao banco de dados MySQL.
include("conexao_mysql.php");
// Instanciamos o Objeto "conexao".
$mysql = new conexao;
// Executamos abaixo uma query (nela estamos selecionando a tabela tbl_usuarios.
$listaclientes = $mysql->sql_query("select * from tbl_usuarios order by nome asc");
// Desconecta do Banco de Dados
$mysql->desconecta;
// Abaixo vamos executar um while com os resultados obtidos na query acima.
while($clientes = mysql_fetch_object($listaclientes)){
// Imprimimos os resultados
print $clientes->nome."
";
print $clientes->email."
";
}
?>
Faça os testes devidos e veja que deverá aparecer em tela os 2 usuários e seus emails cadastrados.
No dia a dia você poderá personalizar este código e fazer a conexão de acordo com suas necessidades, utilizando uma estrutura leve, prática e segura.
Ficamos por aqui em mais uma matéria. Envie-nos suas dúvidas e dê suas sugestões!
Nosso compromisso é o de sempre lhe ajudar!
9 Responses
Cara como é fácil aprender com esses exemplos obg. Mesmo, não tinha nem noção de php e com esse exemplo de conexão e MySql já estou realizando consultas entre outras, continua postando esses artigos. Agradeço por mim e por todos que estão iniciando blz!
Ótimo post… Obrigado!
O melhor exemplo que eu encontrei na internet. E olha que eu fiquei uma tarde inteira procurando.
Parabéns!
Ótima classe, muito bem documentada e bem desenvolvida.
Muito legal esse blog.Estou com problema em um site e nao estou conseguindo solucionar. Sempre que nos conectamos ao Forum, aparece a seguinte mensagem de erro:
SQL ERROR [ mysqli ]
MySQL server has gone away [2006]
Entrei em contato com nosso dominio, para verificar se o problema não seria com eles. Fui informado que precisaremos realizar uma alteração em nosso SCRIPT, que seria a seguinte:
“Programa meu Script para conectar-se ao banco, executar a query e encerrar a conexão”
Mais tenho poucos conhecimentos nessa area, e nao sei como programar o script ou ate mesmo qual script deve ser alterado. Assim, verifiquei a base e encontrei o script de conexão, poderiam me confirmar se é esse script e qual comando deveria utilizar.
Abaixo Script:
ficheiro de configuração do phpBB 3.0.x (…)
Você consegue aceder à administração do fórum? Nessa conta de hospedagem, só tem o phpBB instalado? Tem outros scripts? O erro só acontece com o phpBB? Já pesquisou no fórum do phpBB? http://www.phpbb.com/community/viewforum.php?f=46 Rui
Consigo acessar a Administração do Forum sim. O erro acontece quando um novo usuario se cadastro no Forum, mais o cadastro é efetuado com sucesso mesmo com a mensagem.
Sim, nessa conta temos apenas o phpBB instalado.
No Forum do phpBB falam que é o cache que nao pode ser salvo (algo do tipo).
Notei que outros erros estão acontecendo em nosso Forum (BD caindo), assim imagino que o erro seja em nosso provedor (Locaweb).
Achei bastante util o post….e esta super bem explicado, parabens. So tem duas coisinhas que eu mudaria… no teste.php apos executar a query esta chamando a funcao desconecta novamente e isso nao eh necessario porque a classe conexao ja faz e eu tiraria a funcao MySql da classe conexao, porque ela nao faz nada.
Olá, gostaria de saber duas coisas sobre conexao php-mysql: 1ª como criar um formulário onde o usuario digita suas permissões (user e senha) para poder ter acesso a uma area do site onde ele possa trabalhar com o banco.
2ª como criar um formulario de consulta ao banco onde eu posso filtrar dados com base em qualquer coluna da tabela do banco de dados. (obs.: os formulários sao criados em html e envia as informações para um arquivo php que vai trabalhr com o banco mysql. ufa……valeu.