Guia de Consulta Rápida
PHP 5 Terceira edição
Juliano Niederauer
Novatec
Sumário
Introdução ao PHP.................................................................................... 5 O que é PHP?..............................................................5 Download e instalação.................................................5 Iniciando em PHP...................................................................................... 6 Variáveis................................................................................................... 7 Constantes................................................................................................ 7 Arrays....................................................................................................... 8 Objetos..................................................................................................... 9 Operadores............................................................................................... 9 Aritméticos..................................................................9 Binários..................................................................... 10 Comparação.............................................................. 10 Atribuição................................................................. 10 Lógicos......................................................................11 Estruturas de controle em PHP................................................................ 11 Definição de funções............................................................................... 15 Dados de formulários HTML..................................................................... 15 Leitura e gravação em arquivos-texto...................................................... 16 Integração com bancos de dados............................................................. 16 Funções do PHP....................................................................................... 17 Apache...................................................................... 17 Arrays....................................................................... 18 BCMath – Números de precisão arbitrária.................. 24 Bzip2 – Compressão.................................................. 25 Calendário................................................................26 COM – Suporte para Windows.................................. 27 Classes/Objetos......................................................... 29 Controle de saída (output)......................................... 30 Data e Hora................................................................31 dbx........................................................................... 34 Diretórios................................................................. 35 DOM XML...............................................................36 Erros – Tratamento e Registro (Logging).....................40 Execução de programas..............................................41 Expressões regulares (Perl)......................................... 42 Expressões regulares (POSIX)..................................... 43 Filesystem (Sistema de Arquivos)................................ 43 FTP..........................................................................48 HTTP.......................................................................50 Imagens.....................................................................51 IMAP, POP3 e NNTP................................................. 58
Sumário
InterBase................................................................... 63 LDAP........................................................................66 Mail.......................................................................... 69 Matemática............................................................... 69 Memória compartilhada............................................ 72 MIME....................................................................... 73 Microsoft SQL Server................................................ 73 Miscelânea................................................................ 75 MySQL..................................................................... 76 MySQLi....................................................................80 Network (Rede)......................................................... 85 ODBC....................................................................... 87 Opções e informações do PHP....................................91 Oracle 8.................................................................... 93 PDF..........................................................................96 PostgreSQL............................................................. 104 Sessões..................................................................... 110 Sockets......................................................................111 SQLite..................................................................... 114 Strings..................................................................... 117 Sybase......................................................................123 URL.........................................................................125 Variáveis.................................................................. 126 XML parser............................................................. 128 XSLT....................................................................... 130 Zlib – Compressão................................................... 131 Informações adicionais...........................................................................133 Download do código-fonte........................................133 Versão do PHP utilizada no Guia...............................133 Problemas na execução de funções............................133 Links sobre PHP...................................................... 134 Notação utilizada neste guia.................................... 134 Comentários e sugestões.......................................... 134 Índice remissivo.....................................................................................135
Introdução ao PHP
Introdução ao PHP O que é PHP? PHP é uma das linguagens de programação mais utilizadas na web para a criação de páginas dinâmicas. Suas principais características são: • Gratuito e com código aberto: o arquivo de instalação pode ser obtido gratuitamente no site http://www.php.net. Além disso, o PHP é um software com código-fonte aberto. • Embutido no HTML: o HTML e o PHP estão misturados. Você pode começar a escrever em PHP, então escrever um trecho em HTML, voltar para o PHP, e assim por diante. • Baseado no servidor: quando você acessa uma página PHP pelo seu navegador, todo o código PHP é executado no servidor, e somente o resultado final é exibido para o usuário. Portanto, o navegador exibe a página já processada, sem consumir recursos de seu computador. • Bancos de dados: diversos bancos de dados são suportados pelo PHP, ou seja, o PHP possui código que executa funções de cada um. Entre eles temos MySQL, PostgreSQL, SQLite, InterBase, Oracle, SQL Server, entre outros que oferecem suporte à linguagem SQL. • Portabilidade: pode-se executar o PHP no Linux, Unix ou Windows NT. Veja a seguir um exemplo de uma página web que contém programação PHP. Em vez de nomeá-la como exemplo.html, ela será nomeada como exemplo.php, para que o browser possa identificar que se trata de uma página com programação PHP. exemplo.php <html> <head> <title>Exemplo</title> </head> <body> <?php echo “Este é um script PHP!”; ?> </body> </html>
Esse programa contém a estrutura-padrão de uma página HTML, com as tags <html>, <body>, <head> e <title>. No corpo da página há um trecho de código PHP, em que foi usado o comando echo para exibir na tela o texto “Este é um script PHP!”.
Download e instalação Se você estiver utilizando os serviços de um provedor de hospedagem, provavelmente não precisará se preocupar com a instalação e configuração do PHP e de outros softwares. Caso contrário, o PHP está disponível para download em seu site oficial, no endereço http://www.php.net/.
Introdução ao PHP
Acessando a seção “downloads”, você poderá obter a última versão da linguagem. Na versão para Linux, o PHP precisará ser compilado em seu sistema operacional. Para mais detalhes, consulte o arquivo install.txt que acompanha a distribuição. Na versão Windows, a distribuição está disponível em um arquivo compactado zip que já contém os arquivos binários. Basta descompactá-lo em algum diretório do seu computador. Para poder acessar seus programas pelo navegador, você precisará também de um servidor web. O mais indicado é o Apache, que pode ser obtido em http://httpd.apache.org/. O arquivo install.txt, que acompanha o PHP, contém as instruções para a configuração do PHP no Apache. Se você pretende trabalhar com banco de dados, duas opções interessantes são o MySQL e o PostgreSQL, que podem ser obtidos respectivamente em: •
http://www.mysql.com
•
http://www.postgresql.org.
Se você tiver dificuldades de instalar o PHP no Windows, pode consultar o roteiro de instalação disponibilizado no site pessoal do autor, em http://www.niederauer.com.br/livros/php/roteiro.html.
Iniciando em PHP Um programa PHP pode ser escrito em qualquer editor de texto, como, por exemplo, no Bloco de Notas (Notepad) do Windows ou no VI do Linux. Um trecho de código PHP deve estar entre as tags <?php e ?> para que o servidor web reconheça que trata-se de um código de programação e possa chamar o interpretador PHP para executá-lo. Para treinar, abra o editor de texto de sua preferência e digite as linhas a seguir. exemplo2.php <?php // Que bacana, estou programando em PHP!!! echo “<h1 align=’center’>Este é meu primeiro programa!</ h1>”; ?>
Salve esse programa como exemplo2.php e envie-o para o diretório que você está utilizando para hospedar o site. Para ver o resultado, basta acessar pelo navegador o endereço http://<seu_endereço>/ exemplo2.php, no qual você deve substituir <seu_endereço> pelo endereço do servidor que está utilizando para executar o programa PHP. A seguir é apresentado o significado de cada uma das linhas que você digitou no programa: Elementos Descrição <?php // echo ?>
Indica o início de um trecho de código PHP. Linha de comentário. Tudo que vem após essas barras na mesma linha é ignorado pelo PHP. É um dos comandos mais utilizados em PHP. Serve para escrever alguma coisa na tela. Indica o término de um trecho de código PHP.
Se você escolher a opção Exibir-Código-fonte em seu navegador, verá que ele não recebe nenhuma linha em PHP.
Iniciando em PHP
Ele recebe somente código HTML puro. Isso acontece porque o código PHP é processado no servidor, que retorna somente o resultado final para o navegador.
Variáveis Servem para armazenar dados que podem ser utilizados em qualquer ponto do programa.Ao contrário de linguagens tradicionais, como C, Pascal e Delphi, no PHP não é necessário fazer declaração de variáveis. Basta atribuir diretamente um valor a ela. No PHP, as variáveis devem iniciar com o símbolo $. Após esse símbolo deve vir o identificador da variável, que não pode iniciar com um número. Exemplos de variáveis válidas e inválidas: Válidas $joao23 $casal20 $teste450
Inválidas $100vergonha $5 $20assustar
Um recurso interessante do PHP é a interpolação de variáveis, ou seja, a inclusão do valor de uma variável dentro de uma string, como mostra o exemplo a seguir. exemplo3.php <?php $time = “Grêmio”; $titulo = “Campeão da América”; echo “O $time é $titulo”; ?>
Veja que o valor das variáveis $time e $titulo foi usado dentro da string passada para o comando echo. O resultado será: O Grêmio é Campeão da América
Constantes São valores definidos no início do programa e que não mudam ao longo de sua execução. Você pode definir suas próprias constantes, com o comando define, que possui a seguinte sintaxe: bool define(string nome, misto valor [, bool case_insensitive])
O parâmetro case_insensitive é um valor lógico (true ou false) que indica se o PHP deve distinguir maiúsculas de minúsculas. Veja o exemplo a seguir, nomeado como exemplo4.php, que mostra como devemos usar as constantes: exemplo4.php <?php define define echo echo echo ?>
(“meunome”,”João”); (“peso”,80); “O meu nome é ” . meunome; “<br>”; “O meu peso é ” . peso . “ quilos”;
Constantes
Executando esse programa, você terá o seguinte resultado em seu browser: O meu nome é João O meu peso é 80 quilos
Note que um dos recursos utilizados no exemplo foi a concatenação, representada pelo ponto (.). Além de você poder definir suas próprias constantes, o PHP já possui diversas constantes predefinidas. Veja algumas a seguir: Constantes
Descrição
TRUE FALSE __FILE__ __LINE__
Valor verdadeiro (utilizado para comparação). Valor falso. Nome do script que está sendo executado. Número da linha do scr ipt que está sendo executado. Versão corrente do PHP. Nome do sistema operacional no qual o PHP está rodando. Exibe um erro ocorrido em um script. A execução é interrompida. Exibe uma mensagem de aviso do PHP. A execução não pára. E x i b e u m e r ro d e s i n t a xe. A exe cu ç ã o é interrompida. Mostra que ocorreu algo, mas não necessariamente um erro. A execução não pára.
PHP_VERSION PHP_OS E_ERROR E_WARNING E_PARSE E_NOTICE
Arrays As variáveis comuns (escalares) podem armazenar apenas um valor por vez. Um array (vetor) pode armazenar vários valores ao mesmo tempo. Além de possuir um identificador, um array possui índices (que podem ser números ou strings). O índice deve aparecer entre colchetes ([]) logo após o identificador do array. Veja a seguir exemplos de armazenamento em arrays: $vetor[0] = 30; $vetor[1] = 40; $vetor[3] = 50;
Se não colocarmos o índice do vetor entre colchetes, o PHP irá procurar o último índice utilizado e incrementá-lo, armazenando assim o valor na posição seguinte do array, conforme mostra o exemplo a seguir: $vet[ ] = “Grêmio”; $vet[ ] = “Campeão”;
Nesse exemplo teremos o valor “Grêmio” armazenado em e o valor “Campeão” armazenado em $vet[1].
$vet[0]
Até agora só vimos exemplos em que o índice do array é um valor numérico, mas o índice também pode ser um texto e, nesse caso, o texto é chamado de chave associativa. $vetor[“time”] = “Grêmio”; $vetor[“fundacao”] = 1903;
Existem também as matrizes, que são arrays multidimensionais. Elas podem possuir dois ou mais índices para referenciar uma posição de memória. Por exemplo:
Arrays $clube [“RS”] [“PortoAlegre”] = “Grêmio”; $clube [“MG”] [“BeloHorizonte”] = “Cruzeiro”;
Outra forma de criar um array é por meio da função 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”]; ?>
Após a execução desse programa os resultados mostrados na tela serão os seguintes: 100 1 Juliano
Lembre-se de que o array inicia-se na posição 0 (zero), por isso, apesar de ser o terceiro elemento do array, o 100 foi o primeiro valor mostrado, pois seu índice é 2.
Objetos Também é possível programar em PHP com o modelo orientado a objetos. Podemos definir uma classe e dentro dela, as variáveis e funções que estarão disponíveis aos seus objetos. Um objeto é a variável que utilizamos para instanciar uma classe. Veja a seguir um pequeno exemplo: exemplo6.php <?php class teste { function Saudacao( ) { echo “Oi pessoal!”; } } // $objeto se torna uma instância da classe teste $objeto = new teste; $objeto -> Saudacao( ); ?>
Ao criar uma instância da classe na variável $objeto, podemos acessar as funções definidas dentro da classe. Esse programa mostrará a mensagem “Oi pessoal!”.
Operadores Aritméticos Operadores
Operação
+ - * / %
Adição Subtração Multiplicação Divisão Resto da divisão
10
Operadores
O PHP possui também outros operadores aritméticos, que atuam em apenas um operando. A tabela a seguir mostra esses operadores: Operadores
Descrição
-oper ++oper
Troca o sinal do operando. Pré-incremento. Primeiro incrementa o valor do operando e depois realiza a operação. Pré-decremento. Primeiro decrementa o valor do operando e depois realiza a operação. Pós-incremento. Primeiro realiza a operação e depois incrementa o operando. Pós-decremento. Primeiro realiza a operação e depois decrementa o operando.
—oper oper++ oper—
Por exemplo, se o objetivo for somente incrementar o valor de uma variável, pode-se simplesmente digitar o nome da variável seguida do operador++. Exemplo: $contador++;
Binários Operadores
Descrição
~op1 op1 & op2 op1 | op2 op1 ^ op2 op1 >> n op1 << n
Inverte os bits de op1. Operação E (AND) bit a bit. Operação OU (OR) bit a bit. Operação OU exclusivo (XOR). Desloca op1 n bits à direita. Desloca op1 n bits à esquerda.
Comparação Operadores
Descrição
op1 == op2 op1 === op2
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 não forem do mesmo tipo. Também serve para representar diferença. Verdadeiro se op1 for maior que op2. Verdadeiro se op1 for menor que op2.
op1 op1 op1 op1
>= op2 <= op2 != op2 !== op2
op1 <> op2 op1 > op2 op1 < op2
Atribuição Operadores op1 op1 op1 op1 op1 op1 op1 op1 op1 op1 op1 op1
= op2 += op2 -= op2 *= op2 /= op2 .= op2 %= op2 <<= op2 >>= op2 &= op2 |= op2 ^= op2
Descrição 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. Concatenação: 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.
Vamos ver um exemplo envolvendo operadores de atribuição:
11
Operadores exemplo7.php <html> <body> <?php $soma=0; $valor1 = 10; $valor2 = 20; $valor3 = 30; $soma += $valor1; $soma +=$valor2; $soma *= $valor3; $soma %= 100; echo $soma; ?> </body> </html>
// // // //
$soma $soma $soma $soma
fica fica fica fica
com com com com
10 10+20 = 30 30*30 = 900 900%100 = 0
Lógicos Operadores
Descrição
!op1 op1 AND op2 op1 OR op2 op1 XOR op2 op1 && op2 op1 || op2
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 diferença entre os operadores AND e && e também entre os operadores OR e || é a precedência dos mesmos na avaliação de expressões. A precedência mais alta é dos operadores && e ||.
Estruturas de controle em PHP O uso dessas estruturas é fundamental para realizar decisões lógicas, testar se determinada expressão é verdadeira e repetir um bloco de comandos por um certo número de vezes. Neste guia, veremos os comandos condicionais if e switch e os comandos de repetição while, do...while, for e foreach.
if Comando que avalia uma expressão e, dependendo do resultado, é executado um conjunto diferente de instruções. 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. • senão, se exp2 for verdadeira, execute bloco2. • senão, execute bloco3. Se o bloco de comandos não for delimitado por chaves, será executada apenas a primeira linha após o if (ou elseif ou else). É
12
Estruturas de controle em PHP
importante destacar que não é obrigatório o uso de elseif e else com o comando if. O if pode aparecer sozinho, simplesmente determinando se um bloco de instruções será executado ou não. Por exemplo: <?php if ($nota == 10) { echo “Parabéns! <br>”; echo “Você tirou a nota máxima!” } ?>
Se o valor da variável $nota não for igual a 10, esse bloco de comandos simplesmente não será executado, e a execução do programa seguirá normalmente. Poderíamos acrescentar um else ao comando e imprimir outra mensagem caso o aluno não tirasse nota 10.
switch O comando switch é parecido com o if, pois ambos avaliam o valor de uma expressão para escolher qual bloco de instruções deve ser executado. A sintaxe do switch é a seguinte: switch (operador) { case valor1: <comandos> break; case valor2: <comandos> break; .... case valorN: <comandos> break; default: <comandos> break; }
Após cada bloco de comandos, deve ser utilizado o break para que o comando switch seja encerrado e a execução continue após ele. Veja a seguir um exemplo de uso desse comando. <?php switch ($numero) { case ‘s’: echo “Você escolheu a opção SIM”; break; case ‘n’: echo “ Você escolheu a opção NÃO “; break; default: echo “ A opção digitada é inválida”; break; } ?>
A opção default tem a mesma função da opção else no comando if. Se todas as expressões anteriores retornarem falso, será executado o bloco de comandos que aparece após o default. O uso do default não é obrigatório no comando switch.
Estruturas de controle em PHP
13
while O comando while (enquanto) é composto por uma expressão e por um bloco de comandos. O comando avalia a expressão, e enquanto essa expressão retornar o valor verdadeiro, a execução do bloco de comandos em questão será repetida. A sintaxe é a seguinte: while (exp) { comandos }
Veja a seguir um exemplo de utilização do comando while: exemplo8.php <?php $cont = 1; while ($cont<100) { echo “O valor atual do contador é $cont <br>”; $cont++; } ?>
A execução desse programa resultará em 99 linhas mostradas na tela: O valor atual do contador é 1 O valor atual do contador é 2 ... O valor atual do contador é 99
Quando a variável $cont atingir o valor 100, a expressão retornará o valor falso, pois 100 não é menor que o próprio 100, e isso fará que o loop seja encerrado.
do...while A diferença entre o while e o do...while é que o while avalia a expressão no início do laço, e o do...while avalia a expressão no final do laço. A sintaxe do comando é a seguinte: do { comandos } while (exp);
Veja um exemplo: exemplo9.php <?php $numero = 1; do { echo “O valor atual de número é $numero <br>”; $numero++; } while ($numero<4); ?>
O resultado gerado pela execução desse programa será: O valor atual de número é 1 O valor atual de número é 2 O valor atual de número é 3
14
Estruturas de controle em PHP
for Utilizamos o comando for quando queremos executar um conjunto de instruções por um determinado número de vezes. Sua sintaxe é a seguinte: for (inicialização; condição ;operador) { comandos }
Como inicialização, geralmente determinamos o valor inicial da variável que irá controlar o laço. No segundo parâmetro devemos colocar a condição que deve ser atingida para que o laço continue. O último parâmetro geralmente é usado para atualizar o valor da variável de controle do laço. Veja um exemplo: exemplo10.php <?php for($cont=0 ; $cont<10 ; $cont++) { echo “A variável \$cont vale $cont”; echo “<br>”; } ?>
O resultado gerado pela execução desse programa será o seguinte: A variável $cont vale 0 A variável $cont vale 1 ... A variável $cont vale 9
foreach O comando foreach nos oferece uma maneira mais fácil de “navegar” entre os elementos de um array. Observe as duas sintaxes possíveis: foreach ($nome_array as $elemento) { comandos }
ou foreach ($nome_array as $chave => $valor) { comandos }
A primeira forma vai do primeiro ao último índice do array definido na variável $nome_array, e a cada iteração o valor do elemento corrente do array é atribuído à variável $elemento, e o ponteiro interno do array é avançado. Dessa forma, podemos trabalhar com todos os valores do array utilizando apenas a variável $elemento. A segunda forma faz a mesma coisa, mas com uma diferença: além de o valor do elemento corrente do array ser atribuído à variável $elemento, a chave (ou índice) do elemento atual é atribuído à variável $chave. Acompanhe o exemplo a seguir:
Estruturas de controle em PHP
15
exemplo11.php <?php $vetor = array (1, 2, 3, 4); foreach ($vetor as $v) { print “O valor atual do vetor é $v. <br>”; } $a = array (“um” => 1, “dois” => 2, “tres” => 3); foreach($a as $chave => $valor) { print “\$a[$chave] => $valor.<br>”; } ?>
O programa apresentado mostrará na tela todos os valores do array $vetor e depois mostrará todas as chaves e valores do array $a. O segundo foreach desse exemplo mostrará o seguinte: $a [um] => 1. $a [dois] => 2. $a [tres] => 3.
Definição de funções As funções são muito úteis para deixar o código dos programas mais organizado e mais modular, além de evitarem a repetição de determinado código toda vez que precisarmos realizar a mesma tarefa. A sintaxe do PHP para a construção de uma função é a seguinte: function nome_função (arg1, arg2, arg3 ..., argn) { comandos [return <expressão>] }
Devemos substituir nome_função por um identificador, que deve ser um nome único. O identificador não pode iniciar com número, nem conter caracteres como ponto, vírgula, espaço etc. Veja um exemplo: exemplo12.php <?php function triplo ($numero) { $x = $numero * 3; return $x; } // programa principal $valor = 5; echo “O triplo de $valor é “ . triplo($valor); ?>
Veja que o comando return foi utilizado para retornar um valor para o programa principal.
Dados de formulários HTML O PHP possui dois arrays superglobais que podemos acessar para obter os dados enviados pelos usuários. São eles: $_POST e $_GET. Por exemplo, considere o seguinte formulário HTML: <form method=”POST” action=”exemplo13.php”> <input type=”text” name=”nome” size=”20”> <input type=”submit” value=”Enviar” name=”enviar”> </form>
Esse formulário é formado por um único campo de texto, chamado nome. Conforme definido na opção action, esse valor será
16
Dados de formulários HTML
enviado para o programa exemplo13.php, que poderia obtê-lo e exibilo da seguinte forma: exemplo13.php <?php $nome = $_POST[“nome”]; echo “O nome digitado foi $nome”; ?>
Veja que o nome do campo foi utilizado como chave do array $_POST. O outro array, o $_GET, é mais utilizado quando o envio de dados é feito pela URL (exemplo: http://.../exemplo13. php?nome=Juliano) em vez de se dar por um formulário.
Leitura e gravação em arquivos-texto O PHP nos oferece diversas funções relacionadas com o filesystem do sistema operacional. Podemos então utilizá-las para realizar operações de gravação e leitura de dados em arquivos-texto (txt). As mais utilizadas são fopen (abertura), fclose (fechamento), fwrite (escrita), fread e fgets (leitura). Veja um exemplo: exemplo14.php <?php $arquivo = “teste.txt”; $escrever = “Este texto será escrito no arquivo”; $fd = fopen ($arquivo, “w”); fwrite($fd, $escrever); fclose ($fd); // abre o arquivo e lê o conteúdo gravado $fd = fopen ($arquivo, “r”); $conteudo = fgets($fd, 4096); fclose ($fd); echo “O conteúdo do arquivo é “ . $conteudo; ?>
Integração com bancos de dados O PHP suporta diversos SGBDs (Sistemas de Gerência de Bancos de Dados), oferecendo um conjunto de funções para executar operações (consultas, inclusões, alterações, exclusões etc.) sobre cada um deles. Por exemplo, para acessar um servidor de bancos de dados MySQL, utilizaríamos as funções dessa extensão, como a mysql_ connect( ), mysql_query( ), mysql_num_rows( ) etc. Veja a seguir um exemplo de conexão com um servidor MySQL e uma consulta a uma tabela chamada livros, que supostamente foi criada na base de dados. exemplo15.php <?php $servidor = “localhost”; $usuario = “juliano”; $senha = “12345”; $banco = “test”; $con = mysql_connect($servidor, $usuario, $senha); mysql_select_db ($banco); $res = mysql_query(“SELECT titulo,autor FROM livros”); $num_livros = mysql_num_rows($res); echo “Existem $num_livros livros cadastrados no sistema”; mysql_close($con); ?>