A maioria das aplicaes e sistemas WEB utiliza e acessa uma base de dados. A linguagem PHP permite acessar vrios SGBDs (Sistema Gerenciador de Banco de Dados). Um dos SGBDs mais utilizados em conjunto com o PHP o MySQL e o Postgre. Quando instalamos o aplicativo Xampp, o MySQL tambm foi instalado junto com o interpretador PHP, ento uma boa parte do nosso trabalho de configurao do servidor j foi concluda. Agora o que ns iremos precisar a criao de uma base de dados e as tabelas que iro armazenar as informaes necessrias para o funcionamento de um sistema WEB. Iremos utilizar como exemplo um sistema que controla uma secretaria escolar, no qual possui algumas funcionalidades como: cadastro, alterao, consulta e excluso de alunos do sistema. Siga passo-a-passo as etapas descritas abaixo:
1. CRIAO DO BANCO DE DADOS 1.1. Iremos acessar uma ferramenta grfica disponvel no Xampp que permite gerenciar com facilidade o MySQL. 1.2. Abra o navegador e digite o seguinte endereo: http://localhost/phpmyadmin
No campo Criar novo Banco de Dados digite um nome para o banco que deseja criar. Por exemplo: secretaria. OBS : SEMPRE UTILIZE LETRAS MINSCULAS E NUNCA UTILIZE ESPAO EM BRANCO, ACENTOS OU OUTROS CARACTERES ESPECIAIS PARA OS NOMES E ATRIBUTOS UTILIZADOS A SEGUIR. 1.3. Clique no boto Criar. Observe que ser executado o comando SQL para criar o banco de dados e logo aps, ele aparecer no lado esquerdo da tela, caso no haja erro na criao.
2
1.4. No lado esquerdo da tela, clique no banco secretaria para selecionar o banco criado. Em seguida, no campo Nome, digite um nome para criar uma nova tabela dentro do banco selecionado. Por exemplo: tabela_alunos. No campo Nmero de arquivos digite a quantidade de colunas ou campos que a tabela dever conter. Por exemplo: 6. Em seguida clique no boto Executar. 1.5. Preencha os campos com os respectivos nomes, conforme o modelo abaixo, em seguida clique no boto Salvar. Campo Tipo Tamanho Matricula VARCHAR 10 nome VARCHAR 60 Endereo VARCHAR 60 cidade VARCHAR 60 uf VARCHAR 2 telefone VARCHAR 20 OBS: OS OUTROS CAMPOS NO PRECISAM SER PREENCHIDOS. Caso os campos preenchidos estejam corretos, o comando SQL ser executado e a tabela juntamente com seus campos sero criados, conforme a tela abaixo:
2. ACESSANDO O BANCO DE DADOS COM O PHP A linguagem PHP possui algumas funes especficas para acessar o SGBD MySQL. Para isso, iremos criar um arquivo com o uso das seguintes funes: mysql_connect() e mysql_select_db(). Exemplo: $conexao = mysql_connect(servidor, usurio, senha); servidor: endereo do servidor do banco de dados (caso seja sua prpria mquina, o endereo localhost ou 127.0.0.1); 3
usurio: nome de usurio utilizado para acessar o banco de dados (exemplo: root); senha: senha do usurio que far a conexo(exemplo: 1234);
Esse comando retorna um identificador para a conexo (ponteiro) em caso de sucesso, ou false em caso de falha. Este ponteiro pode ser armazenado dentro de uma varivel PHP para utilizao posterior (ex: para fechar a conexo). A varivel $conexao receber o identificador da conexo, que poderemos utilizar para identific-la quando necessrio. Feita a conexo, devemos selecionar o banco de dados no qual deveremos trabalhar. Voc pode passar o nome do banco de dados como quarto parmetro da conexo ou utilizar a funo mysql_select_db() para isso. Exemplo: $bd = mysql_select_db(banco, identificador_conexo); banco: nome do banco de dados no qual deseja utilizar para o acesso aos dados. Exemplo: secretaria; identificador_conexo: nome da conexo utilizada para conectar ao banco de dados. Exemplo: a varivel $conexao.
3. CADASTRANDO REGISTROS NO BANCO DE DADOS Aps a conexo com o servidor e selecionar o banco de dados desejado, iremos agora cadastrar (inserir) registros na tabela. Para isso, precisamos de uma interface na qual o usurio do sistema possa ter acesso. O formulrio HTML uma forma de interagir com o banco de dados, pois podemos colocar todos os campos necessrios que devem ser preenchidos para que sejam inseridos na tabela desejada. A imagem abaixo mostra um exemplo de formulrio HTML que receber os dados necessrios para que posteriormente possam ser inseridos na tabela.
4
3.1. O cdigo abaixo cria o formulrio HTML: 1 <html> <head> <title>CADASTRO DE ALUNOS</title> </head> <body> <h1>CADASTRO DE ALUNOS</h1> <form action="add_alunos.php" method="post" name="add_alunos"> <table cellpadding="0" cellspacing="0" width="40%" border="1" bordercolor="#00CCCC"> <tr> <td>Matrcula</td><td><input type="text" name="matricula" size="11"></td></tr>
OBS: Na linha 5, o atributo action=add_aluno.php ir determinar o que dever ser feito com os dados digitados no formulrio quando ele for submetido. Observe que cada elemento input possui um atributo name no qual ser utilizado para designar posteriormente uma varivel PHP dentro do arquivo add_aluno.php.
5
3.2. O cdigo abaixo cria o arquivo add_aluno.php que ir receber os dados digitados no formulrio para posteriormente ser inseridos no banco de dados. 1 <?php //conexo com o servidor $conexao = mysql_connect('localhost','root',''); if(!$conexao) { echo 'Erro ao tentar conectar ao servidor.'; }
//seleciona o banco de dados; $db = mysql_select_db('secretaria',$conn); if(!$db) { echo 'Erro ao tentar selecionar o banco de dados.'; }
$sql="insert into tabela_alunos values('$matricula','$nome','$endereco','$cidade','$uf, '$telefone')"; $executa=mysql_query($sql); if ($executa) { echo "Dados inseridor com sucesso!"; } else { echo "Erro ao tentar inserir os dados!"; }
3.3. Entendendo o cdigo: Linha 3 criada uma varivel $conexao que recebe a funo mysql_connect() contendo os valores necessrios para conectar-se ao servidor. Linha 4 e Linha 9 executado um teste condicional nas varivel $conexao e $db. Se $conexao e $db no ocorrerem, ser exibida na tela uma mensagem de erro. Foi utilizado o operador ! (negao) para testar a condio, pois o que nos importa. Caso o valor seja falso, ou seja, se as variveis $conexao e $db ocorrerem, no nos importa saber se elas ocorreram. Linha 8 criada uma varivel $db que recebe a funo mysql_select_db() contendo os valores necessrios para selecionar o banco de dados desejado. Linhas 12 a 17 So criadas as variveis passadas pelos inputs do formulrio HTML. Linha 20 criada uma varivel $sql para receber a string do comando SQL necessrio para inserir dados em uma tabela.
6
Linha 22 criada uma varivel $executa para receber a funo mysql_query(), na qual executa o comando (query) da linguagem SQL. OBS: a string SQL para inserir dados na tabela poderia ser colocada diretamente dentro da funo mysql_query(). Exemplo: mysql_query('insert into tabela_alunos values ('$matricula','$nome','$endereco','$cidade,'$uf,'$telefone')'); Linha 23 executado um teste condicional na varivel $executa. Caso ela ocorra, ou seja, retorne verdadeiro, ser exibida na tela uma mensagem de sucesso. Caso contrrio, ser exibida uma mensagem de erro.