CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 1 Agrupamento de Escolas da Batalha 160301 O PHP e as Bases de Dados Neste módulo, iremos ver como poderemos utilizar as funcionalidades das bases de dados em conjunto com o desenvolvimento das aplicações de Web. A linguagem PHP permite conferir às aplicações de Web a ligação necessária e obrigatória dos sistemas mais modernos a bases de dados, dando-lhe o dinamismo necessário para uma maior interatividade. Interatividade das Aplicações de Web Um dos aspetos mais interessantes que permitem um maior dinamismo com as páginas de Web é obtido com o recurso à interacção com bases de dados. Assim, é possível manipular os dados aí armazenados e criar páginas instantaneamente consoante os pedidos dos utilizadores, obtendo-se uma maior interatividade. Iremos debruçarmo-nos sobre a forma como o PHP consegue manipular dados externos armazenados em bases de dados com o recurso a comandos básicos SQL (Structured Query Language). É necessário ainda possuir conhecimentos mínimos de HTML, além do básico sobre bases de dados e principalmente linguagem SQL. Para que se consiga entender melhor as caraterísticas do PHP relativamente às potencialidades de interação com bases de dados, iremos criar uma base de dados simples em MySQL, e desenvolveremos uma pequena aplicação constituída por um variado grupo de scripts capazes de efetuarem um conjunto de operações básicas, tais como selecionar, inserir, eliminar e alterar registos de uma base de dados. Indicar-se-á também o procedimento a tomar para usar bases de dados em Microsoft Access e indicar-se-á, exemplificando, as potencialidades de uma ferramenta capaz, de, juntamente com o PHP, usar um conjunto de instruções que atuam de modo idêntico nos vários tipos de bases de dados suportados. Iremos acrescentar a estes scripts um conjunto de funcionalidades (navegação entre páginas contendo registos; envio de emails e realização de uploads; redirecionamento de páginas; autenticação de utilizadores; limitação de endereços) capazes de permitirem a criação de uma aplicação suficientemente elucidativa das capacidades desta linguagem e a sua integração com base de dados. Fases do Processo de consulta a uma base de dados via Web e com PHP Figura 1 - Representação esquemática do funcionamento de uma consulta a uma base de dados via Web com scripts PHP
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 1
Agrupamento de
Escolas da Batalha 160301
O PHP e as Bases de Dados
Neste módulo, iremos ver como poderemos utilizar as funcionalidades das bases de dados em conjunto com o
desenvolvimento das aplicações de Web. A linguagem PHP permite conferir às aplicações de Web a ligação
necessária e obrigatória dos sistemas mais modernos a bases de dados, dando-lhe o dinamismo necessário para
uma maior interatividade.
Interatividade das Aplicações de Web
Um dos aspetos mais interessantes que permitem um maior dinamismo com as páginas de Web é obtido com o
recurso à interacção com bases de dados. Assim, é possível manipular os dados aí armazenados e criar páginas
instantaneamente consoante os pedidos dos utilizadores, obtendo-se uma maior interatividade.
Iremos debruçarmo-nos sobre a forma como o PHP consegue manipular dados externos armazenados em bases
de dados com o recurso a comandos básicos SQL (Structured Query Language). É necessário ainda possuir
conhecimentos mínimos de HTML, além do básico sobre bases de dados e principalmente linguagem SQL.
Para que se consiga entender melhor as caraterísticas do PHP relativamente às potencialidades de interação
com bases de dados, iremos criar uma base de dados simples em MySQL, e desenvolveremos uma pequena
aplicação constituída por um variado grupo de scripts capazes de efetuarem um conjunto de operações básicas,
tais como selecionar, inserir, eliminar e alterar registos de uma base de dados. Indicar-se-á também o
procedimento a tomar para usar bases de dados em Microsoft Access e indicar-se-á, exemplificando, as
potencialidades de uma ferramenta capaz, de, juntamente com o PHP, usar um conjunto de instruções que
atuam de modo idêntico nos vários tipos de bases de dados suportados.
Iremos acrescentar a estes scripts um conjunto de funcionalidades (navegação entre páginas contendo registos;
envio de emails e realização de uploads; redirecionamento de páginas; autenticação de utilizadores; limitação
de endereços) capazes de permitirem a criação de uma aplicação suficientemente elucidativa das capacidades
desta linguagem e a sua integração com base de dados.
Fases do Processo de consulta a uma base de dados via Web e com PHP
Figura 1 - Representação esquemática do funcionamento de uma consulta a uma base de dados via Web com scripts PHP
CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 2
Agrupamento de
Escolas da Batalha 160301
Este processo passa pelas seguintes fases principais:
1 – O Web Browser ou cliente Web (por exemplo o Internet Explorer) envia um pedido, através de um
formulário, para acesso a uma base de dados que está dentro ou ligada ao servidor Web.
2 – O Servidor Web recebe a comunicação dos dados do formulário (pelo método Get ou Post) e detecta a
indicação de um script PHP (no atributo “action” do formulário) e chama esse script para que ele receba e
processe os dados.
3 – O Interpretador de PHP faz a interpretação do script mencionado e detecta um pedido de ligação a um
sistema de bases de dados, tenta efectivar essa ligação e, se o conseguir, envia-lhe um comando SQL a executar
na base de dados em causa.
4 – O Servidor de Base de Dados (por exemplo, MySQL) recebe o comando SQL, executa-o na base de dados
visada e, se houver resultados a devolver, esses resultados são enviados ao interpretador de scripts PHP.
5 – O Interpretador de Scripts PHP recebe os resultados enviados pelo servidor da base de dados e prepara
esses resultados para os poder entregar ao servidor Web em formato compatível com o HTML.
6 – O Servidor Web recebe os dados do interpretador de PHP, inere-os num documento HTML ou página Web e
envia essa informação ao cliente (Web browser) que a solicitou.
Acabámos de ver com detalhe todos os passos de uma consulta (ou outro tipo de acção) em relação a uma
base de dados com scripts PHP.
Vejamos agora os passos ou etapas que um programador deste tipo de serviços Web deve ter em conta ao
escrever um script PHP:
1 – Captar os dados enviados com o formulário do utilizador e verificar se esses dados satisfazem os requisitos
necessários.
2 – Estabelecer uma ligação ou conexão ao sistema de base de dados que estiver a ser utilizado.
3 – Elaborar e aplicar um determinado comando SQL com que se pretendem obter determinados resultados
em relação à base de dados visada.
4 – Preparar os dados obtidos do servidor da base de dados para os passar ao servidor Web num formato
compatível com HTML e uma boa apresentação para o cliente que os vai receber.
CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 3
Agrupamento de
Escolas da Batalha 160301
Introdução ao MySQL
Iremos efetuar uma abordagem à forma como selecionar, adicionar, eliminar e alterar dados em MySQL.
Criamos então uma base de dados simples de modo a mostrar aspetos básicos do uso do MySQL, utilizando
como interface de ligação a linguagem SQL.
Pressupõe-se que possui o MySQL corretamente instalado, permitindo ao servidor de MySQL estabelecer
ligações a possíveis clientes.
Figura 2 - Prompt MySQL numa janela DOS em ambiente Windows
A partir do momento em que se obtenha ligação ao servidor MySQL poderemos usar um conjunto bastante
grande de instruções para obter informações acerca das bases de dados e respetivas tabelas. Assim, e de entre
outras poderemos usar as seguintes instruções para:
1 -Visualizar as bases de dados já existentes no servidor MySQL: Show databases;
2 – Seleccionar uma base de dados do servidor MySQL: Use nome_base_dados;
3 – Saber qual a base de dados actualmente seleccionada (em uso): Select database();
4 – Saber quais as tabelas que constituem a base de dados em uso: Show tables;
5 – Saber a estrutura de uma das tabelas da base de dados: Describe nome_tabela;
A base de dados a criar terá o nome “vendas” e será constituída por uma única tabela de nome
“clientes” com apenas 3 colunas(atributos/campos): cod_cli (código do cliente); nome e morada.
Criação da base de dados “vendas”: Create database vendas;
Adição de tabelas na base de dados “vendas”:
Use vendas; Create table clientes (cod_cli int not null auto_increment primary key, nome varchar(40), morada varchar (12));
Primary key – chave primária
Auto_increment – o campo é automaticamente incrementado de uma unidade sempre que se adiciona um registo.
Not Null – o campo não poderá ficar vazio.
Por fim, insira alguns registos na base de dados “vendas” criada.
CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 4
Agrupamento de
Escolas da Batalha 160301
LIGAÇÃO A BASES DE DADOS EM PHP
1 - Principais funções com suporte ao MySQL
Para conseguir efetuar as ligações a base de dados e posteriormente, se consigam manusear os dados aí
armazenados, o PHP fornece um conjunto suficientemente vasto de funções para o MySQL, que de seguida
iremos descrever, dando alguns exemplos onde se verifica a sua utilização:
mysql_connect – estabelece uma ligação ao servidor MySQL;
mysql_pconnect – estabelece uma ligação persistente ao servidor MySQL ;
A ligação ao MySQL não termina após a execução do script nem com o mysql_close(), permanecendo ativa
para o uso futuro.
mysql_close – a ligação ao servidor é cortada após a execução do script sendo por isso necessária uma
certa razoabilidade na sua utilização(ligação);
mysql_create_db – cria uma base de dados (base de dados, ligação);
mysql_drop_db – Elimina uma base de dados( base de dados, ligação);
mysql_select_db – Selecciona para uso uma base de dados (base de dados, ligação);
mysql_db_query – selecciona e interroga uma base de dados(base de dados, pergunta_sql, ligação);
mysql_query – interroga uma base de dados (pergunta_sql, ligação);
mysql_fetch_row – selecciona uma linha (registo) do resultado da interrogação previamente efectuada à
base de dados. O registo é armazenado sob a forma de uma matriz(array), correspondendo cada campo ao
número do índice do array. A sua utilização obedece aos seguintes parâmetros:
mysql_fetch_row($resultado). A execução subsequente de um novo mysql_fetch_row() faz avançar para o
CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 13
Agrupamento de
Escolas da Batalha 160301
Explicação das instruções que compõem o script anterior:
Neste script temos todas as 4 fases relativas a este tipo de scripts para interação com as bases de dados.
1ª FASE – captar e validar a base de dados:
$nomeproc = $_POST['nome']; - a variável $nomeproc(nome procurado) recebe o dado proveniente do
formulário procura_clientes.php( campo nome).
if (!$ligax){echo '<p> Falha na ligação.'; exit; } – avalia se a variável $nomeproc tem um valor nulo ou
string vazia e, se for esse o caso, é enviada uma mensagem a informar desse facto e o script termina
com a instrução exit.
2ª FASE – Ligar ao MySQL e base de dados:
Esta fase começa com a seguinte instrução: $ligax = mysqli_connect('localhost', 'root','');
Se a ligação não for bem sucedida, o script continua e indicamos a base de dados que pretendemos usar com a seguinte instrução: mysqli_select_db($ligax, 'vendas');
3ª FASE – Interagir com a base de dados:
Esta fase começa com a seguinte instrução: $procura = "Select * From Clientes where nome like '%".$nomeproc."%'";
Nesta instrução criamos a variável $procura para receber o comando SQL. Neste caso, trata-se de uma consulta (SQL) com uma condição: where nome like… Usamos aqui Like e não igual a para permitir encontrar nomes parecidos com outras palavras antes e/ou depois.
Em seguida, esta consulta é enviada à base de dados com a seguinte instrução:
$result = mysqli_query($ligax, $procura);
A variável $result recebe o resultado desta consulta ou procura.
A instrução que se segue:
$nregistos = mysqli_num_rows($result); - capta para a variável $nregistos, número de registos encontrados na consulta.
CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 14
Agrupamento de
Escolas da Batalha 160301
4ª FASE – Preparar os dados a apresentar:
Neste caso, estamos a admitir a hipótese de serem encontrados vários registos com o nome indicado para a procura. Usa-se um ciclo for para escrever os registos encontrados:
for ($i=0; $i <$nregistos; $i++) {
$registo = mysqli_fetch_assoc($result);
echo '<tr> <td>'.$registo['cod_cli'].'</td>';
echo '<td>'.$registo['Nome'].'</td>';
echo '<td>'.$registo['Morada'].'<td></tr>'; }
Na parte final deste script, temos um pequeno formulário embebido no código php. Destina-se a permitir que um utilizador insira um nome para remover da base de dados e começa com a seguinte instrução:
<form action="remove_clientes.php" method="post"> - indica que os dados enviados serão recebidos e tratados pelo script remove_clientes.php
CPTGPSI-Programação e Sistemas de Informação – 3ºano – M18 15
Agrupamento de
Escolas da Batalha 160301
2.4. Criação de um script para remover um registo numa tabela da base de dados