apontamentos psi m18

Download Apontamentos psi m18

Post on 08-Jul-2015

547 views

Category:

Education

3 download

Embed Size (px)

TRANSCRIPT

  • CPTGPSI-Programao e Sistemas de Informao 3ano M18 1

    Agrupamento de

    Escolas da Batalha 160301

    O PHP e as Bases de Dados

    Neste mdulo, iremos ver como poderemos utilizar as funcionalidades das bases de dados em conjunto com o

    desenvolvimento das aplicaes de Web. A linguagem PHP permite conferir s aplicaes de Web a ligao

    necessria e obrigatria dos sistemas mais modernos a bases de dados, dando-lhe o dinamismo necessrio para

    uma maior interatividade.

    Interatividade das Aplicaes de Web

    Um dos aspetos mais interessantes que permitem um maior dinamismo com as pginas de Web obtido com o

    recurso interaco com bases de dados. Assim, possvel manipular os dados a armazenados e criar pginas

    instantaneamente consoante os pedidos dos utilizadores, obtendo-se uma maior interatividade.

    Iremos debruarmo-nos sobre a forma como o PHP consegue manipular dados externos armazenados em bases

    de dados com o recurso a comandos bsicos SQL (Structured Query Language). necessrio ainda possuir

    conhecimentos mnimos de HTML, alm do bsico sobre bases de dados e principalmente linguagem SQL.

    Para que se consiga entender melhor as caratersticas do PHP relativamente s potencialidades de interao

    com bases de dados, iremos criar uma base de dados simples em MySQL, e desenvolveremos uma pequena

    aplicao constituda por um variado grupo de scripts capazes de efetuarem um conjunto de operaes bsicas,

    tais como selecionar, inserir, eliminar e alterar registos de uma base de dados. Indicar-se- tambm 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 instrues que

    atuam de modo idntico nos vrios tipos de bases de dados suportados.

    Iremos acrescentar a estes scripts um conjunto de funcionalidades (navegao entre pginas contendo registos;

    envio de emails e realizao de uploads; redirecionamento de pginas; autenticao de utilizadores; limitao

    de endereos) capazes de permitirem a criao de uma aplicao suficientemente elucidativa das capacidades

    desta linguagem e a sua integrao com base de dados.

    Fases do Processo de consulta a uma base de dados via Web e com PHP

    Figura 1 - Representao esquemtica do funcionamento de uma consulta a uma base de dados via Web com scripts PHP

  • CPTGPSI-Programao e Sistemas de Informao 3ano 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, atravs de um

    formulrio, para acesso a uma base de dados que est dentro ou ligada ao servidor Web.

    2 O Servidor Web recebe a comunicao dos dados do formulrio (pelo mtodo Get ou Post) e detecta a

    indicao de um script PHP (no atributo action do formulrio) e chama esse script para que ele receba e

    processe os dados.

    3 O Interpretador de PHP faz a interpretao do script mencionado e detecta um pedido de ligao a um

    sistema de bases de dados, tenta efectivar essa ligao 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 so 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 compatvel com o HTML.

    6 O Servidor Web recebe os dados do interpretador de PHP, inere-os num documento HTML ou pgina Web e

    envia essa informao ao cliente (Web browser) que a solicitou.

    Acabmos de ver com detalhe todos os passos de uma consulta (ou outro tipo de aco) em relao a uma

    base de dados com scripts PHP.

    Vejamos agora os passos ou etapas que um programador deste tipo de servios Web deve ter em conta ao

    escrever um script PHP:

    1 Captar os dados enviados com o formulrio do utilizador e verificar se esses dados satisfazem os requisitos

    necessrios.

    2 Estabelecer uma ligao ou conexo 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 relao base de dados visada.

    4 Preparar os dados obtidos do servidor da base de dados para os passar ao servidor Web num formato

    compatvel com HTML e uma boa apresentao para o cliente que os vai receber.

  • CPTGPSI-Programao e Sistemas de Informao 3ano M18 3

    Agrupamento de

    Escolas da Batalha 160301

    Introduo ao MySQL

    Iremos efetuar uma abordagem forma como selecionar, adicionar, eliminar e alterar dados em MySQL.

    Criamos ento uma base de dados simples de modo a mostrar aspetos bsicos do uso do MySQL, utilizando

    como interface de ligao a linguagem SQL.

    Pressupe-se que possui o MySQL corretamente instalado, permitindo ao servidor de MySQL estabelecer

    ligaes a possveis clientes.

    Figura 2 - Prompt MySQL numa janela DOS em ambiente Windows

    A partir do momento em que se obtenha ligao ao servidor MySQL poderemos usar um conjunto bastante

    grande de instrues para obter informaes acerca das bases de dados e respetivas tabelas. Assim, e de entre

    outras poderemos usar as seguintes instrues 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 constituda por uma nica tabela de nome

    clientes com apenas 3 colunas(atributos/campos): cod_cli (cdigo do cliente); nome e morada.

    Criao da base de dados vendas: Create database vendas;

    Adio 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 primria

    Auto_increment o campo automaticamente incrementado de uma unidade sempre que se adiciona um registo.

    Not Null o campo no poder ficar vazio.

    Por fim, insira alguns registos na base de dados vendas criada.

  • CPTGPSI-Programao e Sistemas de Informao 3ano M18 4

    Agrupamento de

    Escolas da Batalha 160301

    LIGAO A BASES DE DADOS EM PHP

    1 - Principais funes com suporte ao MySQL

    Para conseguir efetuar as ligaes a base de dados e posteriormente, se consigam manusear os dados a

    armazenados, o PHP fornece um conjunto suficientemente vasto de funes para o MySQL, que de seguida

    iremos descrever, dando alguns exemplos onde se verifica a sua utilizao:

    mysql_connect estabelece uma ligao ao servidor MySQL;

    mysql_pconnect estabelece uma ligao persistente ao servidor MySQL ;

    A ligao ao MySQL no termina aps a execuo do script nem com o mysql_close(), permanecendo ativa

    para o uso futuro.

    mysql_close a ligao ao servidor cortada aps a execuo do script sendo por isso necessria uma

    certa razoabilidade na sua utilizao(ligao);

    mysql_create_db cria uma base de dados (base de dados, ligao);

    mysql_drop_db Elimina uma base de dados( base de dados, ligao);

    mysql_select_db Selecciona para uso uma base de dados (base de dados, ligao);

    mysql_db_query selecciona e interroga uma base de dados(base de dados, pergunta_sql, ligao);

    mysql_query interroga uma base de dados (pergunta_sql, ligao);

    mysql_fetch_row selecciona uma linha (registo) do resultado da interrogao previamente efectuada

    base de dados. O registo armazenado sob a forma de uma matriz(array), correspondendo cada campo ao

    nmero do ndice do array. A sua utilizao obedece aos seguintes parmetros:

    mysql_fetch_row($resultado). A execuo subsequente de um novo mysql_fetch_row() faz avanar para o

    registo seguinte seleccionando-o;

    mysql_fetch_array ($resultado, $tipo_de_resultado)

    mysql_result armazena o contedo de um campo a partir de uma interrogao previamente efectuada

    base de dados;

    mysql_result ( $resultado,$numero_linha, $campo) por questes de performance, sempre prefervel

    usar as funes anteriores.

    2 Exemplo de Aplicao das Funes PHP de ligao a base de dados MySQL

    Seguidamente, vamos exemplificar usando algumas destas funes sobre a base de dados vendas criada

    previamente em MySQL. Note que o utilizador e a respetiva password varia consoante o servidor, devendo por

    isso adaptar-se sua situao em concreto.

    Esquema Global da aplicao criada para aceder a uma base de dados a partir de formulrios HTML e scripts PHP

  • CPTGPSI-Programao e Sistemas de Informao 3ano M18