Professional Documents
Culture Documents
Juliano Niederauer
Novatec Editora
2 Guia de Consulta Rpida Integrando PHP 5 com MySQL de Juliano Niederauer Copyright2005 da Novatec Editora Ltda.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. proibida a reproduo desta obra, mesmo parcial, por qualquer processo, sem prvia autorizao, por escrito, do autor e da Editora.
Editor: RUBENS PRATES
ISBN: 85-7522-066-7
Sumrio
Introduo ao Guia ....................................................................... 5 Objetivos ................................................................................ 5 O que PHP? ......................................................................... 5 O que MySQL? ................................................................... 6 Comparando MySQL e PostgreSQL ..................................... 7 Download e instalao dos softwares ........................................... 8 Instalando o PHP e o Apache ................................................. 8 Configurando o Apache para scripts PHP .............................. 9 Testando o funcionamento do PHP no Apache ...................... 9 Download e instalao do MySQL ...................................... 10 Habilitando a extenso MySQL no PHP ............................. 10 Linguagem PHP ......................................................................... 11 Introduo ao PHP ............................................................... 11 Variveis ............................................................................... 12 Constantes ............................................................................ 12 Arrays ................................................................................... 13 Operadores ........................................................................... 14 Aritmticos ........................................................................... 14 Binrios ................................................................................ 14 Comparao ......................................................................... 14 Atribuio ............................................................................ 15 Lgicos ................................................................................. 15 Estruturas de controle em PHP ............................................ 15 if ........................................................................................... 15 switch ................................................................................... 16 while ..................................................................................... 17 do...while .............................................................................. 17 for ......................................................................................... 18 foreach .................................................................................. 19 Definio de funes ........................................................... 20 Dados de formulrios HTML .............................................. 20 Servidor de bancos de dados MySQL ........................................ 21 Criando um banco de dados ................................................. 21 Tipos de dados aceitos pelo MySQL ................................... 22 Criando tabelas ..................................................................... 23 Visualizando a estrutura das tabelas .................................... 24 Inserindo dados .................................................................... 24 Alterando um banco de dados .............................................. 25 Excluindo registros ou tabelas ............................................. 26 Executando consultas ........................................................... 26 Ordenando os resultados de uma consulta ........................... 29 Definindo o nmero de linhas retornadas ............................ 29 Utilizando INSERT e SELECT para inserir registros .......... 30 Campos com numerao automtica ................................... 30 Integrando PHP com MySQL .................................................... 31 Estabelecendo uma conexo ................................................ 31 Conectando ao servidor MySQL ......................................... 31 Selecionando o banco de dados ........................................... 31 Include de conexo .............................................................. 31 Executando comandos SQL em um programa PHP ............ 32 Tratando os resultados de comandos SQL ........................... 33 Nmero de linhas afetadas por uma operao ..................... 33 Nmero de linhas resultantes de uma consulta .................... 34 Armazenando uma linha em um array ................................. 34
Sumrio
Armazenando uma linha em um objeto ............................... 35 Obtendo o valor de um campo do resultado ........................ 36 Gerenciando um banco de dados com PHP ......................... 37 Criando um menu principal para a loja ................................ 37 Incluindo produtos ............................................................... 38 Excluindo produtos .............................................................. 40 Alterando produtos ............................................................... 41 Listando os produtos cadastrados ........................................ 44 Ferramentas para administrao do MySQL .............................. 46 phpMyAdmin ....................................................................... 46 MySQL-Front ...................................................................... 46 Funes do PHP para o MySQL ................................................ 47 Extenso MySQL ................................................................. 47 Extenso MySQLi ................................................................ 51 Referncia do MySQL ............................................................... 59 Comandos SQL bsicos ....................................................... 59 Aes do comando ALTER TABLE .................................... 60 Operadores do MySQL ........................................................ 76 Operadores aritmticos ........................................................ 76 Operadores bitwise ............................................................... 76 Operadores lgicos ............................................................... 76 Operadores de comparao .................................................. 76 Operador LIKE .................................................................... 77 Operador REGEXP .............................................................. 77 Caracteres especiais usados em REGEXP ........................... 77 Funes de agregao .......................................................... 78 Funes de comparao ....................................................... 78 Funo CASE ....................................................................... 79 Funes numricas ............................................................... 80 Funes de string ................................................................. 81 Funes de data e hora ......................................................... 84 Outras funes ..................................................................... 88 Informaes adicionais ............................................................... 90 Download do cdigo-fonte .................................................. 90 Verso dos softwares utilizados no Guia ............................. 90 Problemas na execuo de funes ...................................... 90 Links sobre PHP e MySQL .................................................. 90 Notao utilizada neste Guia ............................................... 91 Comentrios e sugestes ...................................................... 91 Outros livros do autor sobre PHP ........................................ 91
Introduo ao Guia
Introduo ao Guia
Objetivos
Este guia foi criado para auxiliar os programadores que desejam integrar a linguagem PHP com o banco de dados MySQL. Para isso, sero apresentados os procedimentos de instalao, configurao e integrao dessas tecnologias, incluindo a configurao do servidor Web (ex: Apache). Primeiramente, voc aprender a instalar e configurar os softwares necessrios para executar os exemplos contidos neste guia. Em seguida, veremos noes bsicas de programao PHP, no com o intuito de detalhar toda a linguagem, mas de mostrar os recursos que sero teis na integrao bsica com o MySQL. Logo aps, sero mostradas noes bsicas do MySQL, onde voc aprender a acessar o servidor MySQL e realizar as operaes desejadas sobre um banco de dados nesse servidor. Finalizando, ser apresentada a integrao completa entre o PHP e o MySQL, com exemplos simples e prticos de como gerenciar um banco de dados de produtos, com incluses, alteraes, excluses e consultas. No final do guia, voc encontrar as referncias dos comandos do PHP e do MySQL.
O que PHP?
PHP uma das linguagens de programao mais utilizadas na Web para a criao de pginas dinmicas. Suas principais caractersticas so: Gratuito e com cdigo aberto: o arquivo de instalao pode ser obtido gratuitamente no site http://www.php.net. Alm disso, o PHP um software com cdigo-fonte aberto. Embutido no HTML: o HTML e o PHP podem ser misturados. Voc pode comear a escrever em PHP, de repente escrever um trecho em HTML, depois voltar para o PHP, e assim por diante. Baseado no servidor: quando voc acessa uma pgina PHP atravs do seu navegador, todo o cdigo PHP executado no servidor, e somente o resultado final exibido para o usurio. Portanto, o navegador exibe a pgina j processada, sem consumir recursos de seu computador. Bancos de dados: diversos bancos de dados so suportados pelo PHP, ou seja, o PHP possui cdigo que executa funes de cada um. Entre eles temos MySQL, PostgreSQL, SQLite, InterBase, Oracle, SQL Server, entre outros que oferecem suporte linguagem SQL (Structured Query Language). Portabilidade: pode-se executar o PHP no Linux, Unix ou Windows NT.
Veja a seguir um exemplo de uma pgina Web que contm programao PHP. Ao invs de nome-la como exemplo.html, ela ser nomeada como exemplo.php, para que o navegador possa identificar que trata-se de uma pgina com programao.
6 exemplo.php
<html> <head> <title>Exemplo</title> </head> <body> <?php echo Este um script PHP!; ?> </body> </html>
Introduo ao Guia
O programa apresentado contm a estrutura padro de uma pgina HTML, com as tags <html>, <body>, <head> e <title>. No corpo da pgina h um trecho de cdigo PHP, onde foi utilizado o comando echo para exibir na tela o texto Este um script PHP!.
O que MySQL?
MySQL um SGBD (Sistema de Gerncia de Bancos de Dados) relacional que utiliza a linguagem padro SQL (Structured Query Language), e largamente utilizado em aplicaes para a Internet. o mais popular entre os bancos de dados com cdigo-fonte aberto. H mais de cinco milhes de instalaes do MySQL no mundo todo, inclusive em sites com alto volume de dados e de trfego, como Associated Press, Google, NASA, Sabre Holdings e Suzuki. O MySQL uma alternativa atrativa porque, mesmo possuindo uma tecnologia complexa de banco de dados, seu custo bastante baixo. Tem como destaque suas caractersticas de velocidade, escalabilidade e confiabilidade, o que vem fazendo com que ele seja adotado por departamentos de TI (Tecnologia da Informao), desenvolvedores Web e vendedores de pacotes de softwares. A seguir so listadas algumas vantagens do MySQL: nmero ilimitado de utilizao por usurios simultneos; capacidade de manipulao de tabelas com mais de 50.000.000 de registros; alta velocidade de execuo de comandos; fcil e eficiente controle de privilgios de usurios.
Portanto, o MySQL e o PHP formam uma excelente dupla para o desenvolvimento de pginas Web dinmicas, tanto para websites pequenos como para grandes portais.
Introduo ao Guia
importante lembrar que o PHP uma linguagem voltada para a Web, portanto deve haver um servidor Web, que receba as solicitaes das pginas, faa o processamento pelo PHP, e retorne ao navegador (browser) um resultado.
Conforme vimos no tpico anterior, para poder acessar seus programas pelo navegador voc precisar tambm do servidor Web (Apache), que pode ser obtido em http://httpd.apache.org. Faa o download da verso mais atual do Apache para o seu sistema operacional. No caso do Linux, voc pode obter o arquivo indicado como Unix Source, que contm o cdigofonte a ser compilado no Linux. No caso do Windows, voc pode obter o arquivo com a indicao Win32 Binary. Em seguida, basta executar esse arquivo e seguir as instrues para que o Apache seja instalado em sua mquina.
10
Linguagem PHP
11
Linguagem PHP
Introduo ao PHP
Um programa PHP pode ser escrito em qualquer editor de texto, como por exemplo o Bloco de Notas (Notepad) do Windows ou o VI do Linux. Um trecho de cdigo PHP deve estar entre as tags <?php e ?>, para que o servidor Web reconhea que tratase de um cdigo de programao e possa chamar o interpretador PHP para execut-lo. Para treinar, abra o editor de texto de sua preferncia e digite as quatro linhas a seguir, salvando o arquivo com o nome de exemplo2.php.
exemplo2.php
<?php // Que bacana, estou programando em PHP!!! echo <h1 align=center>Este meu primeiro programa!</h1>; ?> Em seguida, envie o arquivo para o diretrio raiz do Apache (document root). Para ver o resultado, basta voc acessar pelo navegador o endereo http://<seu_endereo>/exemplo2.php, onde voc deve substituir <seu_endereo> pelo endereo do servidor que est utilizando para executar os programas PHP.
A seguir apresentado o significado de cada uma das linhas que voc digitou no programa:
Elemento <?php // echo ?> Descrio Indica o incio de um trecho de cdigo PHP. Linha de comentrio. Tudo que vem aps estas barras na mesma linha ignorado pelo PHP. um dos comandos mais utilizados em PHP. Serve para escrever alguma coisa na tela. Indica o trmino de um trecho de cdigo PHP.
Se voc escolher a opo Exibir-Cdigo-fonte em seu navegador, ver que ele no recebe nenhuma linha em PHP. Ele recebe somente cdigo HTML puro. Isso acontece porque o cdigo PHP processado no servidor, que retorna somente o resultado final para o navegador.
12
Linguagem PHP
Variveis
Servem para armazenar dados que podem ser usados em qualquer ponto do programa. Ao contrrio de linguagens tradicionais, como C, Pascal e Delphi, no PHP no necessrio fazer declarao de variveis. Basta atribuir diretamente um valor a ela. No PHP, as variveis devem iniciar com o smbolo $. Aps esse smbolo deve vir o identificador da varivel, que no pode iniciar com um nmero. Exemplos de variveis vlidas: $joao23 $casal20 $teste450 Um recurso interessante do PHP a interpolao de variveis, ou seja, a incluso do valor de uma varivel dentro de uma string, como mostra o exemplo a seguir.
exemplo3.php
<?php $time = Grmio; $titulo = Campeo da Amrica; echo O $time $titulo; ?> Veja que o valor das variveis $time e $titulo foi usado dentro da string passada para o comando echo. O resultado ser: O Grmio Campeo da Amrica
Constantes
So valores que so predefinidos no incio do programa, e que no mudam ao longo de sua execuo. Voc pode definir suas prprias constantes, utilizando o comando define, que possui a seguitne sintaxe: define bool define (string nome, misto valor [, bool case_insensitive]) O parmetro case_insensitive um valor lgico (true ou false) que indica se o PHP deve diferenciar letras maisculas e minsculas. Veja o exemplo a seguir, nomeado como exemplo4.php, que mostra como devemos usar as constantes:
exemplo4.php
<?php define (meunome,Joo); define (peso,80); echo O meu nome . meunome; echo <br>; echo O meu peso . peso . quilos; ?> Executando esse programa, voc ter o seguinte resultado em seu navegador: O meu nome Joo O meu peso 80 quilos
Linguagem PHP
13
Arrays
As variveis comuns (escalares) podem armazenar apenas um valor por vez. Um array (vetor) pode armazenar vrios valores ao mesmo tempo. Alm de possuir um identificador, um array possui ndices (que podem ser nmeros ou strings). O ndice deve aparecer entre colchetes ([]) logo aps o identificador do array. Veja a seguir alguns exemplos de armazenamento em arrays: $vetor[0] = 30; $vetor[1] = 40; Se no colocarmos o ndice do vetor entre colchetes, o PHP ir procurar o ltimo ndice utilizado e increment-lo, armazenando assim o valor na posio seguinte do array, conforme mostra o exemplo a seguir: $vet[ ] = Grmio; $vet[ ] = Campeo; Nesse exemplo teremos o valor Grmio armazenado em $vet[0] e o valor Campeo armazenado em $vet[1]. At agora s vimos exemplos em que o ndice do array um valor numrico, mas o ndice tambm pode ser um texto, e nesse casos o texto chamado de chave associativa. $vetor[time] = Grmio; $vetor[fundacao] = 1903; Existem tambm as matrizes, que so arrays multidimensionais. As matrizes podem possuir dois ou mais ndices para referenciar uma posio de memria. Por exemplo: $clube [RS] [PortoAlegre] = Grmio; $clube [MG] [BeloHorizonte] = Cruzeiro; Outra forma de criar um array por meio da funo array do PHP. Veja o exemplo apresentado a seguir:
exemplo5.php
<?php $vetor = array (10,50,100,150,200); echo $vetor[2] . <br>; $vet = array (1, 2, 3, nome=>Juliano); echo $vet[0] . <br>; echo $vet[nome]; ?> Aps a execuo desse programa os resultados mostrados na tela sero os seguintes: 100 1 Juliano Lembre-se de que o array se inicia na posio 0 (zero), por isso apesar de ser o terceiro elemento do array, o 100 foi o primeiro valor mostrado, pois seu ndice 2.
14
Linguagem PHP
Operadores
Aritmticos
Operador + * / % Operao Adio. Subtrao. Multiplicao. Diviso. Resto da diviso.
O PHP possui tambm outros operadores aritmticos, que atuam em apenas um operando. No PHP tambm possvel utiliz-lo. A tabela a seguir mostra esses operadores:
Operador -oper ++oper --oper oper++ oper-Descrio Troca o sinal do operando. Pr-incremento. Primeiro incrementa o valor do operando e depois realiza a operao. Pr-decremento. Primeiro decrementa o valor do operando e depois realiza a operao. Ps-incremento. Primeiro realiza a operao e depois incrementa o operando. Ps-decremento. Primeiro realiza a operao e depois decrementa o operando.
Por exemplo, se o objetivo for somente incrementar o valor de uma varivel, pode-se simplesmente digitar o nome da varivel seguida do operador ++. Exemplo: $contador++;
Binrios
Operador ~op1 op1 & op2 op1 | op2 op1 ^ op2 op1 >> n op1 << n Descrio Inverte os bits de op1. Operao E (AND) bit a bit. Operao OU (OR) bit a bit. Operao OU exclusivo (XOR). Desloca op1 n bits direita. Desloca op1 n bits esquerda.
Comparao
Operador op1 == op2 op1 === op2 op1 >= op2 op1 <= op2 op1 != op2 op1 !== op2 op1 <> op2 op1 > op2 op1 < op2 Descrio Verdadeiro se op1 for igual a op2. Verdadeiro se op1 for igual a op2 e eles forem do mesmo tipo. Verdadeiro se op1 for maior ou igual a op2. Verdadeiro se op1 for menor ou igual a op2. Verdadeiro se op1 for diferente de op2. Verdadeiro se op1 for diferente de op2 ou eles no forem do mesmo tipo. Tambm serve para representar diferena. Verdadeiro se op1 for maior que op2. Verdadeiro se op1 for menor que op2.
Linguagem PHP
15
Atribuio
Operador op1 = op2 op1 += op2 op1 -= op2 op1 *= op2 op1 /= op2 op1 .= op2 op1 %= op2 op1 <<= op2 op1 >>= op2 op1 &= op2 op1 |= op2 op1 ^= op2 Descrio op1 recebe o valor de op2. Equivale a op1=op1+op2. Equivale a op1=op1-op2. Equivale a op1=op1*op2. Equivale a op1=op1/op2. Concatenao: equivale a op1=op1.op2. Equivale a op1=op1%op2. Equivale a op1=op1<<op2. Equivale a op1=op1>>op2. Equivale a op1=op1&op2. Equivale a op1=op1|op2. Equivale a op1=op1^op2.
Lgicos
Operador !op1 op1 AND op2 op1 OR op2 op1 XOR op2 op1 && op2 op1 || op2 Descrio Verdadeiro se op1 for falso. Verdadeiro se op1 E op2 forem verdadeiros. Verdadeiro se op1 OU op2 forem verdadeiros. Verdadeiro se s op1 ou s op2 for verdadeiro. Verdadeiro se op1 E op2 forem verdadeiros. Verdadeiro se op1 OU op2 forem verdadeiros.
A diferena entre os operadores AND e &&, e tambm entre os operadores OR e ||, a precedncia dos mesmos na avaliao de expresses. A precedncia mais alta dos operadores && e ||.
if
Comando que avalia uma expresso e, dependendo do resultado, executado um conjunto diferente de instrues. O comando if pode possuir como complemento o elseif e/ou o else. Observe a sintaxe do comando if: If ( exp1 ) { bloco1 } elseif ( exp2 ) { bloco2 } else { bloco3 } Podemos ler essa sintaxe da seguinte maneira: se exp1 for verdadeira, execute bloco1. seno se exp2 for verdadeira, execute bloco2. seno execute bloco3.