42
PHP & MySQL

Acesso Banco Geral Complemento Leiam Pratiquem

Embed Size (px)

DESCRIPTION

Acesso Banco Geral Complemento Leiam Pratiquem

Citation preview

  • PHP

    &

    MySQL

  • SUMRIO

    PHP SITES ESTTICOS 3

    SITES DINMICOS 3

    CARACTERSTICAS 3

    HISTRIA 3

    RECURSOS NECESSRIOS 4

    SITES PARA DOWNLOAD 4

    COMO FUNCIONA 4

    CLIENT SIDE X SERVER SIDE 5

    ESTRUTURA DE PGINAS HTML 5

    PGINAS HTML COM SCRIPTS PHP INCORPORADOS 5

    DELIMITADORES 5

    ENDEREO PARA EXECUTAR PHP (na mquina local) 5

    PROGRAMA TESTE USANDO phpinfo() 5

    COMENTRIOS 6

    SEPARADOR DE INSTRUES 6

    COMANDO DE IMPRESSO 6

    CONSTANTES 6

    VARIVEIS 7

    CARACTERES DE ESCAPE 8

    ARRAYS 9

    OPERADORES 10

    ESTRUTURAS DE CONTROLE 13

    FUNES 16

    TRABALHANDO COM ARQUIVOS 19

    FORMULRIOS 21

    COOKIES 23

    SESSIONS 25

    MYSQL

    INTRODUO 27

    PRINCIPAIS COMANDOS 27

    TIPOS DE DADOS 28

    OPERADORES 30

    DDL DATA DEFINITION LANGUAGE 31

    DML DATA MANIPULATION LANGUAGE 33

    INTEGRANDO PHP COM MYSQL

    CASE: CADASTRO DE ALUNOS 34

    EXERCCIOS RESOLVIDOS 37

    APNDICE A

    APACHE CRIAR UM DIRETRIO PROTEGIDO POR SENHA 40

    APNDICE B

    WEB SERVICES 41

    SITES RECOMENDADOS 44

    BIBLIOGRAFIA 44

  • PHP & MYSQL 3

    PHP SITES ESTTICOS Utiliza-se freqentemente apenas HTML No interagem s solicitaes dos usurios Apresentam uma estrutura rgida Atualizao das pginas muito trabalhosa No acessam Bancos de Dados SITES DINMICOS Utiliza-se: HTML, PHP, ASP, JSP, XML, etc. Interagem s solicitaes dos usurios Apresentam uma estrutura mais flexvel Atualizao das pginas muito prtica Acessam Bancos de Dados PHP Originalmente: Personal Home Page Hoje: Hipertext Preprocessor CARACTERSTICAS Linguagem totalmente voltada Internet Utilizada para criao de sites dinmicos Gratuito: (download: www.php.net) Cdigo aberto Pode ser embutido em pginas HTML Baseado no Servidor: Apache, IIS ... Suporte a vrios SGBDs: PostgreSQL, MySQL ... Portabilidade: Linux, Unix, Windows NT, 2000 ... HISTRIA 1994: Rasmus Lerdorf Aplicao: Informaes sobre visitas ao site 1995: Primeira verso utlizada por outras pessoas Livro de visitas, contador, etc. 1995 (2 semestre): PHP/FI (Form Interpreter) Interpreta dados de formulrios HTML e suporte a MySQL 1996: Interpretador reescrito: Zeev Suraski e Andi Gutmans Atualmente: PHP4 (est sendo desenvolvida a verso 5).

  • PHP & MYSQL 4

    RECURSOS NECESSRIOS LINUX APACHE WINDOWS 95/98/ME PHP TRIAD (inclui MySQL) EASY PHP (inclui MySQL) PWS (Personal Web Server) com mdulo PHP WINDOWS NT/2000/XP IIS (Internet Information Service) com modulo PHP SITES PARA DOWNLOAD PHP

    http://www.php.net PHP Triad

    http://sourceforge.net/projects/phptriad EasyPHP

    http://www.easyphp.org MySQL

    http://www.mysql.com

    http://www.mysql.org COMO FUNCIONA

  • PHP & MYSQL 5

    CLIENT SIDE X SERVER SIDE Scripts criados em JavaScript e as applets Java so executadas no lado cliente, ou seja, na mquina do usurio. Os programas criados em PHP (assim como ASP e JSP) so executados no lado servidor. Quando o usurio requisita uma pgina PHP, o servidor interpreta o contedo da pgina e devolve para o cliente uma pgina HTML, embora com a extenso .php. Isso pode ser verificado no browser atravs da opo Exibir -> Cdigo Fonte. ESTRUTURA DE PGINAS HTML TTULO DA PGINA PGINA HTML PGINAS HTML COM SCRIPTS PHP INCORPORADOS EXEMPLO Linha em HTML DELIMITADORES O PHP deve geralmente estar embutido dentro do HTML Para escrever o cdigo PHP ser necessria a utilizao de tags no incio e no fim de cada seo do PHP. ENDEREOS PARA EXECUTAR PHP (na mquina local) http://127.0.0.1/nome_do_arquivo.php http://localhost/nome_do_arquivo.php PROGRAMA DE TESTE USANDO phpinfo()

  • PHP & MYSQL 6

    COMENTRIOS Permitir que outra pessoa leia o seu cdigo e entenda o que voc estava pensando enquanto

    escrevia o cdigo (ainda que esta pessoa seja voc mesmo uma semana mais tarde)

    Desabilitar partes ou linhas de programas Para comentar (ou desabilitar) uma linha: // # Para comentar (ou desabilitar) mais de uma linha: SEPARADOR DE INSTRUES Para separar ou finalizar instrues PHP necessrio o uso de ; COMANDO DE IMPRESSO Um programa em PHP normalmente tem como sada uma pgina HTML. Para podemos "imprimir" estes resultados podemos usar os comandos echo ou print. print(argumento) echo argumento echo "argumento" CONSTANTES DEFINIO So valores predefinidos no incio do programa e que no mudam ao longo de sua execuo. Voc pode definir suas prprias constrantes utilizando o comando define. define (,);

  • PHP & MYSQL 7

    VARIVEIS APLICAO Usadas para guardar informaes que mudam ou variam no decorrer do script. CARACTERSTICAS Todas as variveis no PHP tm um sinal de cifro ($) na frente O valor de uma varivel sempre o mais recente atribudo: Variveis so atribudas com o operador (=), ficando a varivel do lado esquerdo e a

    expresso ou o valor, direita: $nome_da_variavel=valor; NOMES O PHP case sensitive, ou seja, ele diferencia maisculas de minsculas A melhor maneira de programar em PHP utilizar um padro de digitao, para variveis o

    recomendado minscula. EXEMPLOS Elabore um script em PHP para calcular a rea de um tringulo. Elabore um script em PHP para apresentar a data atual. Hoje dia

  • PHP & MYSQL 8

    TIPOS DE VARIVEIS NUMRICAS As variveis numricas apresentam valores inteiros ou reais (ponto flutuante). Inteiros $x=12345;//inteiro positivo $x=-123;//inteiro negativo Ponto flutuante $nota=6.5;//ponto flutuante

    A varivel definida como numrica no momento que atribumos um valor numrico a ela.

    $x=10; $y=2.5; STRING (ALFANUMRICAS) So cadeias de caracteres que podem ser delimitados por aspas simples () ou duplas (). Porm, o resultado poder ser diferente, note os exemplos a seguir: Aspas duplas: Aspas simples: CARACTERES DE ESCAPE \" Insere no texto o caractere " \n Nova linha \r Retorno de carro (carriage return) \t Tabulao \$ Insere no texto o smbolo $ \\ Insere no texto o caractere \ Exemplo:

  • PHP & MYSQL 9

    ARRAYS As variveis comuns, tambm chamadas de variveis escalares, podem armazenar apenas um valor por vez. Um array (vetor) pode armazenar vrios valores ao mesmo tempo, pois alm de apresentar um identificador (como ocorre com as variveis), h tambm um ndice associado (que pode ser um nmero ou um texto). Cada ndice indica uma posio de memria em que fica armazenado um elemento do array. O ndice aparece entre colchetes [ ] logo aps o identificador do array. Os arrays so muito teis quando precisamos realizar automatizao de tarefas em nossos programas. Analogia: ARMRIO -> GAVETAS -> CORRESPONDNCIAS IDENTIFICADOR -> NDICES -> CONTEDO DAQUELE ELEMENTO Exemplos:

  • PHP & MYSQL 10

    OPERADORES Utilizamos operadores para: atribuir valores a uma varivel, efetuar operaes aritmticas, comparar valores, etc. TIPOS DE OPERADORES: Aritmticos Binrios Comparao Atribuio Lgicos Ternrio ARITMTICOS Utilizados para efetuar operaes matemticas (somar, subtrair, multiplicar, dividir, etc.) OPERADOR DESCRIO

    + Adio - Subtrao * Multiplicao / Diviso % Resto de diviso

    H tambm os operadores unrios (que atuam em apenas um operando). So utilizados para troca de sinal, incremento ou decremento de valor, etc. OPERADOR DESCRIO -op Troca o sinal do operando. ++op Pr-incremento. Primeiro incrementa o valor do operando e depois realiza a operao. --op Pr-decremento. Primeiro decrementa o valor do operando e depois realiza a operao. op++ Ps-incremento. Primeiro realiza a operao e depois incrementa o operando. op-- Ps-decremento. Primeiro realiza a operao e depois decrementa o operando. Exemplo: BINRIOS Utilizados para fazer comparaes binrias (bit a bit), inverter os bits de um operando, deslocar bits direita (equivalente a uma diviso por dois), deslocar bits esquerda (equivalente a multiplicar por dois).

    OPERADOR DESCRIO ~op1 Inverte os bits do operando. op1&op2 Operao E (AND) bit a bit. op1|op2 Operao OU (or) bit a bit. op1^op2 Operao OU exclusivo (XOR). op1>>n Desloca o operando n bits direita. op1

  • PHP & MYSQL 11

    Exemplo: COMPARAO Utilizados para executar comparaes entre o valor de duas variveis, uma varivel e um texto (string) ou uma varivel e um nmero. So tambm chamados de operadores condicionais.

    OPERADOR DESCRIO op1==op2 Verdadeiro se op1 for igual a op2. op1>op2 Verdadeiro se op1 for maior que op2. op1=op2 Verdadeiro se op1 for maior ou igual a op2. op1

  • PHP & MYSQL 12

    Resultado gerados pelos operadores de acordo com o tipo de expresso avaliada:

    Operador AND exp1 exp2 resultado

    V V V V F F F V F F F F

    Operador OR

    exp1 exp2 resultado V V V V F V F V V F F F

    Operador XOR

    exp1 exp2 resultado V V F V F V F V V F F F

    Operador ! (NOT)

    exp1 resultado V F F V

    TERNRIO Forma abreviada de utilizar o comando condicional IF. Uma condio avaliada, se for verdadeira, atribui-se o primeiro valor varivel, se for falsa atribui-se o outro valor. condicao ? expressao1 : expressao2 Exemplo: Equivale a:

  • PHP & MYSQL 13

    ESTRUTURAS DE CONTROLE COMANDOS CONDICIONAIS: if switch IF Avalia uma expresso e, dependendo do resultado, executado um conjunto diferente de instrues. Complementos: elseif e/ou else. SWITCH Tambm avalia o valor de uma expresso para escolher qual bloco de instruo deve ser executado. O switch trabalha basicamente com o operador de igualdade, enquanto o if trabalha com qualquer tipo de operador. COMANDOS DE REPETIO: while do ... while for foreach WHILE Avalia uma expresso e, enquanto essa expresso retornar o valor verdadeiro, a execuo do bloco de comando ser repetida. Quando o valor retornado for falso, encerra-se o lao de repetio (loop), e a execuo transferida para o fim do comando while.

  • PHP & MYSQL 14

    DO ... WHILE While avalia a expresso no incio do lao e do ... while avalia a expresso no final do lao. Portanto, utilizando do ... while o lao ser executado pelo menos uma vez, mesmo que a condio no seja verdadeira. FOR Utilizado quando queremos executar um conjunto de instrues um determinado nmero de vezes. Exemplo: imprimir todos os elementos de um array ou todos os registros retornados de uma consulta a um banco de dados. for (inicializao; codio; operador) { comandos } FOREACH Oferece uma maneira prtica de navegar entre os elementos de um array. Disponvel apenas na PHP 4 ou superior. foreach ($nome_array as $elemento) { comandos }

  • PHP & MYSQL 15

  • PHP & MYSQL 16

    FUNES

    As funes tornam possvel escrever cdigo reutilizvel e modular.

    Uma funo pode receber argumentos (variveis passadas para a funo para uso dentro da funo) e retornar um valor (opcional).

    Os argumentos so passados normalmente por valor, o que significa que uma cpia dos dados enviada para a funo. Mudanas na cpia da varivel no afetam a varivel original.

    Alternativamente, os argumentos podem ser passados por referncia, caso em que a funo no trabalha com uma cpia dos dados, mas sim com a prpria varivel original; assim mudanas na varivel persistiro fora da funo.

    Os argumentos podem ser opcionais, atribuindo-se um valor a eles na declarao da funo.

    As variveis, dentro de uma funo, normalmente tm alcance local, significando que elas existem somente dentro da funo e no interferem com variveis fora da funo, mesmo se elas tiverem o mesmo nome.

    As variveis podem acessar variveis globais usando a instruo global: ESCOPO DE UMA VARIVEL

    Escopo de uma varivel define a poro do programa onde ela pode ser utilizada.

    Na maioria dos casos todas as variveis tm escopo global. Entretanto, em funes definidas pelo usurio um ESCOPO LOCAL criado.

    Uma varivel de ESCOPO GLOBAL no pode ser utilizada no interior de uma funo sem que haja uma declarao explcita.

    O exemplo a seguir no produzir sada alguma, pois a varivel $n de escopo global, e no pode ser referenciada em um escopo local, mesmo que no haja outra com nome igual que cubra sua visibilidade.

    Para que o script funcione, a varivel global a ser utilizada deve ser declarada.

  • PHP & MYSQL 17

    Uma declarao "global" pode conter vrias variveis, separadas por vrgulas.

    Uma outra maneira de acessar variveis de escopo global dentro de uma funo utilizando um array predefinido pelo PHP cujo nome $GLOBALS. As variveis locais dentro de uma funo so reinicializadas sempre que a funo chamada, a menos que a instruo static seja usada, caso em que ela ir reter o ltimo valor da chamada anterior: O MODIFICADOR static

    Utilizando-se o modificador static o valor das variveis declaradas como estticas mantido ao terminar a execuo da funo. Na prxima execuo da funo, ao encontrar novamente a declarao como static, o valor da varivel recuperado.

    No exemplo abaixo, o ltimo comando da funo intil, pois assim que for encerrada a execuo da funo, a varivel $n perde seu valor.

    No prximo exemplo, a cada chamada da funo a varivel $n ter seu valor impresso e ser incrementada. RECURSIVIDADE Recursividade quando uma funo chama a si mesma. Isto pode levar a algoritmos muito elegantes que adotam a tcnica de dividir um problema complexo em passos menores que podem ser repetidos.

  • PHP & MYSQL 18

    Exemplos:

  • PHP & MYSQL 19

    TRABALHANDO COM ARQUIVOS

    Arquivos de baixo nvel so uma boa alternativa para situaes em que precisamos armazenar informaes, mas no temos acesso a um banco de dados.

    Para utilizarmos os arquivos de baixo nvel so necessrios os seguintes passos: 1. Abrir o arquivo em modo leitura e/ou gravao; 2. Iniciar o processo de leitura ou gravao; 3. Fechar o arquivo. Principais funes do PHP para arquivos de baixo nvel:

    fopen: Abre um arquivo. Retornar false se ocorrer erro. fwrite: Escreve um nmero especfico de bytes de uma string em um arquivo. fgets: Retorna uma string do arquivo a partir do ponteiro do arquivo at que (tamanho -1)

    bytes sejam lidos. A leitura termina quando encontra o fim de uma linha ou quando o arquivo termina.

    feof: Retorna true caso o ponteiro de arquivo esteja no fim do arquivo ou ocorra um erro, caso contrrio retorna false.

    fclose: Fecha um arquivo aberto. Retorna true se obtiver sucesso e false em caso de erro.

    A funo fopen recebe como segundo argumento o modo de abertura: r Abre somente para leitura (read-only); coloca o ponteiro no comeo do arquivo. r+ Abre para leitura (read) e gravao (write); coloca o ponteiro no comeo do arquivo. w Abre somente para gravao; coloca o ponteiro no comeo do arquivo e apaga o

    contedo que j foi escrito. Se o arquivo no existir, tenta cri-lo.

    w+ Abre para leitura e escrita; coloca o ponteiro no incio do arquivo e apaga o contedo que j foi escrito. Se o arquivo no existir, tenta cri-lo.

    a Abre o arquivo somente para escrita; coloca o ponteiro no fim do arquivo. Se o arquivo no existir, tenta cri-lo.

    a+ Abre o arquivo para leitura e gravao; coloca o ponteiro no fim do arquivo. Se o arquivo no existir, tenta cri-lo.

    Se voc abrir um arquivo, ler e visualizar o contedo, depois gravar uma verso editada

    com o mesmo nome de arquivo, voc no pode depender do modo w+. Os modos w apagam o contedo do arquivo imediatamente ao abri-lo, por isso voc s pode ler um arquivo w+ depois de gravar nele.

    Para contornar esse problema, voc precisa abrir uma vez no modo de leitura e uma vez no modo de gravao: Exemplo 1 - contador de visitas:

    Nota: Criar o arquivo contador.txt e gravar no mesmo diretrio ou ..//contador.txt

  • PHP & MYSQL 20

    Exemplo 2 Registrando o IP do usurio, data e hora: ip.php Exemplo 3 Leitura de um arquivo (noticias.txt): learquivo.php noticia.txt Notcia 1 Notcia 2 Notcia 3 Notcia 4 Notcia 5 Outras funes importantes para manipulao de arquivos e diretrios: explode()

    divide uma string

    http://www.php.net/manual/pt_BR/function.explode.php opendir()

    abre um diretrio

    http://www.php.net/manual/pt_BR/function.opendir.php readdir()

    l os arquivos de um diretrio

    http://www.php.net/manual/pt_BR/function.readdir.php closedir()

    fecha um diretrio

    http://www.php.net/manual/pt_BR/function.closedir.php file_exists()

    verifica se um arquivo existe

    http://www.php.net/manual/pt_BR/function.file-exists.php

  • PHP & MYSQL 21

    FORMULRIOS 1 passo - Criar um formulrio utilizando a linguagem HTML para enviar os dados: envia.htm Digite o seu nome:

  • PHP & MYSQL 22

    EXEMPLO: Sistema para guardar informaes de usurios em arquivos de texto. Nome: E-mail: Endereo: Telefone:

  • PHP & MYSQL 23

    COOKIES Definio:

    Pequenos fragmentos de textos enviados ao browser do usurio. Objetivo:

    Armazenar informaes (variveis) na mquina do usurio e resgat-las posteriormente. Aplicao:

    Cesta de compras Cadastro de usurios Personalizao de sites DEFINIR UM COOKIE setcookie ("name",["value"],["expiration"],["path"],["domain"],["security"]); name - Nome da varivel global que ser armazenada em HTTP_COOKIE_VARS e que ser

    acessvel nas pginas seguintes.

    value - Valor atribudo varivel name.

    expiration - Tempo durante o qual o cookie estar acessvel.

    path - Se especificarmos / (barra simples), o cookie ser vlido para todos os diretrios do servidor web. Se especificarmos /nome_diretorio, o cookie ser vlido somente neste diretrio.

    domain - Cookies so vlidos somente para o host e domnio que o definiram. Se nenhum domnio for especificado, o valor default ser o nome do servidor que o gerou.

    security - Se o parmetro for 1, o cookie ser transmitido somente via HTTPS. Atribuimos o valor 100 ao cookie codigo que expirar em 24 horas (86400 segundos). IMPORTANTE: Os cookies fazem parte do cabealho HTTP, porisso precisamos chamar setcookie ANTES de enviar qualquer dado ao navegador. LER UM COOKIE $nome_variavel=$HTTP_COOKIE_VARS["name"];

  • PHP & MYSQL 24

    EXEMPLO COMPLETO: index.php cadastrar.htm Nome: RA: definircookies.php Cookie gravado com sucesso! Consultar cadastrado.php Nome: RA: Apagar cookies apagarcookies.php Os cookies foram apagados com sucesso!

  • PHP & MYSQL 25

    SESSIONS Perodo durante o qual um usurio navega pelas pginas de um site. Quando este entra no site, abre-se uma sesso e registra-se nela algumas variveis que ficaro gravadas no servidor e podero ser acessadas em qualquer pgina do site, enquanto a sesso estiver aberta. session id identificador nico para cada sesso. Para uma pgina ter acesso aos dados

    da sesso, ela deve conhecer o session id.

    Podemos transmitir o session id entre as pginas de duas formas: Cookies: Armazena-se o session id em um cookie na mquina do usurio e este utilizado

    como referncia para acessar os dados da sesso no servidor.

    Propagao na URL: Pode ser feito de duas formas: Ativando-se o parmetro enable-trans-sid: a identificao enviada transparentemente

    entre as pginas.

    Caso o parmetro acima no seja habilitado, deve-se acrescentar ao final da URL a constante SID, criada automaticamente pelo PHP no incio da sesso.

    echo 'Link; IMPORTANTE: Sempre que possvel utilize o primeiro mtodo (cookies), pois permite melhor gerenciamento e proporciona maior segurana. CRIAR UMA SESSO session_start() funo utilizada para criar uma sesso ou para restaurar os dados de

    uma sesso com base no identificador (passado por cookie ou pelos mtodos GET ou POST).

    IMPORTANTE: Chamar a funo session_start antes de qualquer sada produzida pelo browser. REGISTRAR VARIVEIS EM UMA SESSO $_SESSION varivel superglobal utilizada para registrar uma varivel (disponvel a

    partir da verso 4.1.0 do PHP). EXEMPLO 1:

  • PHP & MYSQL 26

    Opco: Para propagar o identificador atravs da URL deve-se alterar a ltima linha: echo 'Pgina 2';

  • PHP & MYSQL 27

    MySQL INTRODUO Executar o EasyPHP ou Triad c:\ ...\mysql\bin\mysql u p c:\ ...\mysql\bin\mysql u root p mysql> PRINCIPAIS COMANDOS mysql> \h \h help Mostra a tela de sada de ajuda (somente a relao de comandos). ? help Sinnimo para help. \c clear Limpa o Buffer. \r connect Reconecta o servidor. Pode receber dois parmetros e . \G ego Envia um comando para o MySQL e exibe os resultados verticalmente. \q exit Encerra o MySQL. O mesmo que quit. \g go Envia o comando atual para o MySQL. \t notee No envia para o arquivo de sada. \p print Imprime o comando atual. \q quit encerra o MySQL. \# rehash Refaz um Hash finalizado. \. source Executa uma relao de comandos SQL existente em um arquivo. Deve-se informar aps o comando o nome do arquivo. Exemplo: \.script.sql \s status Exibe informaes sobre o MySQL. \T tee Envia tudo para um arquivo de sada informado aps o comando. \u use Indica o banco de dados que deve ser utilizado. Deve-se informar o nome do banco de dados. Exemplo: u\ cadastro mysql> SELECT CURRENT_DATE(); 2004-05-13

  • PHP & MYSQL 28

    TIPOS DE DADOS Numrico Data / Hora Strings NUMRICO TINYINT [(M)] [UNSIGNED] [ZEROFILL]

    Inteiro variando de -128 a 127 ou 0 a 255 se o parmetro UNSIGNED for utilizado (neste caso aceitar somente nmeros positivos). SMALLINT [(M)] [UNSIGNED] [ZEROFILL]

    Inteiro variando de -32768 a 32777 ou 0 a 65355 (UNSIGNED). MEDIUMINT [(M)] [UNSIGNED] [ZEROFILL]

    Inteiro variando de -8388608 a 8388607 ou 0 a 16777215 (UNSIGNED). INT [(M)] [UNSIGNED] [ZEROFILL]

    Inteiro variando de -2147483648 a 2147483647 ou 0 a 4294967295. INTEGER [UNSIGNED] [ZEROFILL]

    Sinnimo de INT. BIGINT [(M)] [UNSIGNED] [ZEROFILL]

    Inteiro variando de 9223372036854775808 a 9223372036854775807 ou 0 a 18446744073709551615 FLOAT [(M,D)] [ZEROFILL]

    Flutuante de preciso simples, tendo os seguintes intervalos aceitos: -3.402823466E+38 a -1.175494351E-38, 0 e 1.175494351E-38 a 3.402823466E+38 DOUBLE [(M,D)] [ZEROFILL]

    Flutuante de preciso dupla, tendo os seguintes intervalos aceitos: -1.7976931348623157E+308 a 2.2250738585072014E-308, 0 e 2.2250738585072014E-308 a 1.7976931348623157E+308 REAL [(M,D)] [ZEROFILL]

    Sinnimo de DOUBLE. DECIMAL [(M[,D])] [ZEROFILL]

    Flutuante com caracterstica especial: cada nmero ocupa um byte (comporta-se como um dado do tipo CHAR). NUMERIC [(M[,D])] [ZEROFILL]

    Sinnimo de DECIMAL. M O tamanho mximo a ser exibido. O maior valor possvel 255.

    D O nmero mximo de dgitos decimais a serem exibidos. O valor mximo 30, porm no pode ser maior que M-2.

    ZEROFILL Indica o preencimento de zeros esquerda do valor: 5 ser representado por 00005, dependendo do valor de M.

    UNSIGNED Indica que somente valores no negativos sero aceitos (maior ou igual a zero).

  • PHP & MYSQL 29

    DATA / HORA DATE

    AAAA-MM-DD (intervalo aceito: 1000-01-01 A 9999-12-31). DATETIME

    AAAA-MM-DD HH-MM-SS (intervalo aceito: 1000-01-01 00:00:00 a 9999-12-31 23:59:59 TIMESTAMP

    Armazena uma determinada data em segundos contados partir de 1 de janeiro de 1970 s 00:00:00h (padro UNIX). TIME

    HH:MM:SS (intervalo aceito: -838:59:59 a 838:59:59). YEAR

    Armazena um ano qualquer podendo ser de dois ou quatro dgitos. STRING CHAR

    1 a 255 caracteres (tamanho fixo) VARCHAR

    1 a 255 caracteres (tamanho varivel) TINYTEXT

    1 a 255 caracteres TEXT

    At 65.535 caracteres MEDIUMTEXT

    At 16.777.215 caracteres. LONGTEXT

    At 4.294.967.295 TINYBLOB, BLOB, MEDIUMBLOB e LONGBLOB (Binary Large Object)

    Armazenam dados em formato binrio, i.e., so case sensitive na comparao e classificao de seus contedos (os tipos text no so case sensitive). Tm as mesmas limitaes que seus tipos TEXT correspondentes. ENUM (valor_1,valor_2, ... ,valor_n)

    Permite determinar uma lista de valores vlidos para o campo, que somente aceitar um dos valores listados, o valor NULL ou o valor (em branco). O nmero mximo de itens da lista de valores 65.535. SET (valor_1,valor_2, ... ,valor_n)

    Permite determinar uma lista de valores vlidos para o campo, sendo que podem ser escolhidos 0, 1 ou vrios dos itens da lista. O nmero mximo de itens da lista do tipo SET de 64.

  • PHP & MYSQL 30

    OPERADORES ARITMTICOS

    Realizam operaes matemticas bsicas.

    OPERADOR DESCRIO + soma - subtrao * multiplicao / diviso

    LGICOS

    Realizam comparaes entre expresses, retornando verdadeiro ou falso.

    OPERADOR DESCRIO

    NOT Negao: retorna F se o resultado for V, V se o resultado for F. Retorna NULL se o resultado for NULL.

    OR OU: se uma das expresses for V, retorna V. AND E: se uma das expresses for F, retorna F.

    ! O mesmo que NOT. || O mesmo que OR. && O mesmo que AND.

    BINRIOS

    Realizam operaes em nvel de bits (0 e 1).

    OPERADOR DESCRIO | OU: caso um dos bits seja 1, retorna 1. & E: os dois bits precisam ser 1 para retornar 1.

    > Deslocamento direita. Equivale a dividir por dois. ~ Inverso: caso o bit seja 1 ser convertido em O e vice-versa.

    COMPARAO

    Avalia valores literais, numricos, strings, expresses e campos de uma tabela ou uma conjuno destes elementos.

    OPERADOR DESCRIO = IGUAL: op1=op2, retorna V se os dois operandos forem igual.

    DIFERENTE: op1op2, retorna V se os operandos no forem iguais. != O mesmo que > MAIOR: op1>op2, retorna V se op1 for maior que op2.

    >= MAIOR OU IGUAL: op1>=op2, retorna V se op1 no for menor que op2. < MENOR: op1

  • PHP & MYSQL 31

    CRIANDO UM BANCO DE DADOS mysql> CREATE DATABASE nome_do_DB; mysql> CREATE DATABASE exemplo; CRIAR UM BANCO DE DADOS A PARTIR DE UM SCRIPT (ARQUIVO TEXTO) mysql u root p nome_do_DB < c:\nome_arquivo.sql EXCLUINDO UM BANCO DE DADOS mysql> DROP DATABASE nome_do_DB; mysql> DROP DATABASE exemplo; LISTAR OS BANCO DE DADOS mysql> SHOW DATABASES; ESPECIFICAR UM BANCO DE DADOS mysql> USE nome_do_DB; CRIAR UMA TABELA CREATE TABLE clientes ( cdigo VARCHAR(5) NOT NULL, nome VARCHAR (50) NOT NULL, endereco VARCHAR (50) NULL, PRIMARY KEY(codigo) ); LISTAR TODAS AS TABELAS SHOW TABLES; APAGAR UMA TABELA DROP TABLE nome_da_tabela; ALTERAR UMA TABELA ADICIONAR COLUNA ALTER TABLE nome_da_tabela ADD COLUMN nome_nova_coluna tipo [(tamanho)] [FIRST | AFTER] nome_coluna; ADICIONAR PRIMARY KEY ALTER TABLE nome_da_tabela ADD PRIMARY KEY (nome_coluna); ADICIONAR UNIQUE ALTER TABLE nome_da_tabela ADD UNIQUE [nome_ndice] (nome_coluna); ADICIONAR INDEX ALTER TABLE nome_da_tabela ADD INDEX nome_indice(nome_coluna);

  • PHP & MYSQL 32

    ADICIONAR FOREIGN KEY ALTER TABLE nome_da_tabela ADD CONSTRAINT simbolo FOREIGN KEY(nome_coluna) REFERENCES nome_tabela(nome_coluna_pk); Nota: Criar tambm um INDEX com o mesmo valor (nome) colocado em simbolo. ELIMINAR PRIMARY KEY ALTER TABLE nome_da_tabela DROP PRIMARY KEY; ELIMINAR INDEX ALTER TABLE nome_da_tabela DROP INDEX nome_indice; ELIMINAR FOREIGN KEY ALTER TABLE nome_da_tabela DROP FOREIGN KEY simbolo; Nota: Para saber o valor de simbolo utilizar o seguinte comando:

    SHOW CREATE TABLE nome_da_tabela;

    O valor o que aparece ao lado direito de CONSTRAINT.

    Exemplo: CONSTRAINT 'fk_cliente_pedido' ALTERAR NOME DA COLUNA ALTER TABLE nome_da_tabela CHANGE nome_coluna novo_nome_coluna tipo [(tamanho)]; ELIMINAR UMA COLUNA ALTER TABLE nome_da_tabela DROP [COLUMN] nome_coluna; ALTERAR NOME DA TABELA ALTER TABLE nome_da_tabela RENAME [TO] novo_nome_da_tabela; APRESENTAR DETALHES (ESTRUTURA) DE UMA TABELA DESCRIBE nome_da_tabela; ou DESC nome_da_tabela; APRESENTAR OS NDICES DE UMA TABELA SHOW INDEX FROM nome_da_tabela;

  • PHP & MYSQL 33

    INSERIR DADOS (POLULAR) NUMA TABELA INSERT INTO nome_da_tabela (nome_coluna_1,...,nome_coluna_n) VALUES ("valor_11",..., "valor_n1"), ("valor_12",..., "valor_n2"); INSERT INTO cliente (cd_cliente,nm_cliente) VALUES (1,"Antonio"), (2,"Beatriz"); Nota: Dados do tipo string devem ser inseridos entre aspas simples ou duplas. APRESENTAR TODOS OS DADOS DE UMA TABELA SELECT * FROM clientes; ELIMINAR DADOS DE UMA TABELA DELETE FROM nome_da_tabela WHERE condicao; DELETE FROM cliente WHERE cd_cliente=10; REDIRECIONAR A SADA PARA UM ARQUIVO HTML mysql -u root -p -H -e "select * from nome_da_tabela" nome_do_DB > arquivo.html

  • PHP & MYSQL 34

    ----------------------------------------------------------------------------------------- CADASTRO DE ALUNOS

    ----------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------- MySQL ----------------------------------------------------------------------------------------- 1. Entrar no phpmyadmin: http://localhost/phpmyadmin 2. Criar o Banco de Dados: teste 3. Criar a tabela: alunos, com a seguinte estrutura: ra VARCHAR 04 PK nome VARCHAR 30 4. Inserir cinco registros na tabela (utilizando o phpmyadmin). ----------------------------------------------------------------------------------------- PHP -----------------------------------------------------------------------------------------

  • PHP & MYSQL 35

  • PHP & MYSQL 36

  • PHP & MYSQL 37

    EXERCCIOS 1. Criar um programa em PHP para calcular a mdia de um determinado aluno, conforme a

    seguinte frmula: media = (nota1 + nota2)/2.

    2. Criar um array com os nomes dos meses para exibir a data atual no formato abaixo:

    10 de maro de 2004

    3. Criar um programa em PHP para calcular a mdia de um determinado aluno, conforme a

    seguinte frmula: media = (nota1 + nota2)/2. Se a mdia for menor que 5 (cinco) imprimir REPROVADO, se for igual ou maior que 5 imprimir APROVADO.

    4. Fazer quatro programas em PHP utilizando os comandos de repetio while, do ...

    while, for e foreach para gerar a tabuada de um determinado nmero. A tela de sada dever ser a seguinte:

    5 x 1 = 5 5 x 2 = 10 ...

    5 x 10 = 50

    5. Crie uma pgina PHP para apresentar um menu de restaurante. Os itens e seus preos

    devem ser definidos atravs de um vetor associativo (array), cujas chaves (ndices) sero os nomes dos itens. Devem ser apresentadas duas listas: uma ordenada por produtos e a outra por preos. Consulte alguma referncia de PHP para descobrir que funes de ordenao (sorting) usar.

    6. Criar o arquivo html conforme modelo abaixo e a pgina PHP para receber os dados do

    formulrio.

    7. Criar um catlogo de produtos. As pginas devero ser compostas de um cabealho (no

    topo) com o nome e o logo da empresa. Um menu ( esquerda) dever apresentar as categorias dos produtos vendidos (exemplo: informtica, vdeo, som, etc.) Na seo principal ( direita do menu) devero ser exibidos os seguintes detalhes: cdigo, nome, descrio e foto de cada produto. Para pgina de abertura (home page) devero aparecer 5 (cinco) ou 6 (seis) produtos que estaro em promoo.

  • PHP & MYSQL 38

    APNDICE A APACHE CRIAR UM DIRETRIO PROTEGIDO POR SENHA 1. Criar o seguinte diretrio: c:\senhas 2. No prompt de comando, localizar o diretrio onde encontra-se o arquivo htpasswd.exe O caminho costuma ser o seguinte: c:\apache\bin 3. Digitar o seguinte comando: htpasswd -c c:\senhas\acesso aluno Este comando cria no diretrio senhas um arquivo chamado acesso e um usurio aluno. Ser solicitado que voc insira a senha duas vezes. 4. Na pasta htdocs do Apache crie o diretrio teste Este o diretrio a ser protegido. 5. Abra o Windows Explorer e localize: c:\ ... \apache\conf 6. Abra com o bloco de notas o arquivo httpd.conf 7. Posicione o cursor ABAIXO do seguinte trecho: AllowOverride None Order allow,deny Allow from all A linha poder ser diferente, dependendo do local onde o Apache foi instalado e do pacote escolhido (xampplite, easyphp, triad, etc.) 8. Digite o seguinte: Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all AuthAuthoritative on AuthName "Acesso Restrito" AuthType Basic AuthUserFile c:\senhas\acesso require user aluno 9. Salve o arquivo httpd.conf. 10. Encerre e re-inicialize o Apache. (Apache->Stop e Apache->Start) 11. Ao tentar acessar o teste ser solicitado o usurio e a senha.

  • PHP & MYSQL 39

    APNDICE B

    WEB SERVICES

    Um Web Service uma aplicao que usa os protocolos padro da Internet, para que se torne possvel a comunicao transparente de mquina-mquina e aplicao-aplicao.

    INTRODUO

    Quando estamos trabalhando dentro de um ambiente controlado como as redes corporativas da nossa empresa, possvel criar aplicaes que sejam compartilhadas por diversos servidores e desktops. Podemos inclusive escolher qual o melhor modelo de objetos para se construir tais aplicaes, como o uso do COM+ da Microsoft, CORBA da OMG ou mesmo EJB (Enterprise JavaBeans) da Sun.

    O problema aparece quando pretendemos utilizar a infra-estrutura da Internet para executar remotamente tais objetos. Como trabalham em formato binrio, estes objetos exigem uma porta de comunicao exclusiva, o que gera problemas quando precisamos atravessar um firewall, por exemplo. Por questes de segurana estas portas so fechadas, pois oferecem riscos de invaso rede interna.

    Nos ltimos anos, uma linguagem para troca de dados entre aplicativos vinha ganhando grande aceitao do mercado, a linguagem XML. O XML oferece uma srie de benefcios em relao aos formatos antigos. Para comear, alm do prprio dado, ele leva ainda a descrio do mesmo. Por ser arquivo texto, pode ser interpretado em qualquer plataforma ou sistema operacional e no apresenta problemas quando encontra um firewall, j que no apresenta risco de segurana. Por ltimo, um padro controlado por um rgo independente, o W3C (World Wide Web Consortium).

    Com tantos atributos o XML foi a base natural para criao do SOAP (Simple Object Application Protocol), modelo de objetos utilizados nos Web Services. As chamadas aos mtodos pblicos do objeto so realizados atravs de um arquivo XML, da mesma forma que a resposta a requisio tambm utiliza o mesmo formato. Contm diversas sees opcionais que descrevem os atendimentos do mtodo (RPC) e que detalham a emisso de mensagens do SOAP sobre o HTTP.

    O SOAP um padro aberto criado pela Microsoft, Ariba e IBM para padronizar a transferncia de dados em diversas aplicaes, por isso, utiliza XML.

    Mais dois padres foram criados em cima destes, o WSDL (Web Service Description Language), que descreve como o Web Service funciona (por sinal um arquivo XML), e o UDDI (Universal Description, Discovery and Integration), a "pginas amarelas" de Web Services, uma especificao para publicao e localizao de informaes sobre os servios Web. Um servio onde possvel cadastrar o seu servio, categorizado, dentro dos servios UDDI da Internet. Hoje este servio oferecido pela IBM, HP, SAP e Microsoft atravs do http://uddi.microsoft.com , mas novos servios esto aparecendo a cada dia.

    A especificao UDDI se baseia no protocolo de acesso a objeto simples (SOAP), a linguagem de marcao estensvel (XML) e padres de protocolo HTTP/S desenvolvidos pelo consrcio da World Wide Web (W3C) e a fora tarefa de engenharia da Internet (IETF).

    Resumindo, os Web Services so componentes de software que so chamados a partir de outros aplicativos. So "pginas web" para outros computadores e no para seres humanos como as pginas HTML tradicionais. a tecnologia que permite que computadores na Internet conversem entre si sem a interveno direta dos usurios.

    Com toda esta infra-estrutura de tecnologia disponvel, os Web Services esto se tornando uma nova opo de negcio para as empresas que planejam utilizar a Internet como meio de troca de informaes. Os Web Services esto oferecendo uma nova proposio de negcios s empresas de tecnologia e abrindo um novo universo de oportunidades.

    APLICAES E VANTAGENS

    O uso de Web Service permite acessar: rotinas de validao de carto de crdito endereamento postal (CEP) cotao de preos calcular valores de fretes news de empresas, etc.

    O Web Service transparente para o Firewall de uma empresa, pois, como uma string XML, ento interpretada como um arquivo "texto". Sendo assim, no preciso pedir autorizao do Firewall para entrar.

  • PHP & MYSQL 40

    Exemplo: Servidor para consultar informaes sobre CEP (Cdigo de Endereamento Postal). 1. MySQL - Criar o banco de dados e a tabela abaixo: CREATE DATABASE cep; USE cep; CREATE TABLE cep ( cep int(8) unsigned zerofill NOT NULL default '00000000', tipo varchar(10), logradouro varchar(30), bairro varchar(30), localidade varchar(30), uf varchar(2)); INSERT INTO cep VALUES (01311000,'Av','Paulista','Bela Vista','Sao Paulo','SP'); 2. Baixar e descompactar o arquivo nusoap-0.6.4.zip: http://dietrich.ganx4.com/nusoap/downloads/nusoap-0.6.4.zip A classe NUSOAP prove conexo com o protocolo SOAP (Simple Object Access Protocol). 3. Criar o arquivo server_cep.php:

  • PHP & MYSQL 41

    4. Criar o arquivo client.php:

  • PHP & MYSQL 42

    SITES RECOMENDADOS http://php.scriptbrasil.com

    http://phpbrasil.com

    http://php.planetmirror.com/manual/pt_BR/

    BIBLIOGRAFIA Niederauer, J. Desenvolvendo Websites com PHP, Novatec, 2004

    _____ Integrando PHP 5 com MySQL, Novatec, 2005

    _____ PHP para Quem Conhece PHP, Novatec, 2004

    Muto, C. A. PHP & MySQL Guia Avanado, Brasport, 2004

    Ullman, L. PHP para a World Wide Web, Campus, 2001

    CERLI, A. R. Desenvolvendo Web Sites Dinmicos: PHP, ASP, JSP, Campus, 2003