Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Mini-Curso PHP 5.2 Orientado a Objeto

Mini-Curso PHP 5.2 Orientado a Objeto

Mini Curso de PHP 5.2 com conceitos básico e de Orientação Objeto.

Rafael Goulart

November 15, 2011
Tweet

More Decks by Rafael Goulart

Other Decks in Programming

Transcript

  1. Consultor em Software Livre Desenvolvedor Web PHP | XHTML |

    CSS | Web Standards @rgou [email protected] http://tech.rgou.net http://github.com/rafaelgou Rafael Goulart
  2. rafael goulart – http://tech.rgou.net 4 Como funciona um servidor web

    INTERNET CLIENTE – Navegador/Browser Chrome / Firefox / Internet Explorer / Opera / (outros) SERVIDOR HTTP Apache IIS (outros)
  3. rafael goulart – http://tech.rgou.net 5 Conteúdo estático 01 INTERNET CLIENTE

    – Navegador/Browser Chrome / Firefox / Internet Explorer / Opera / (outros) SERVIDOR HTTP Apache IIS (outros) index.html Página estática HTML arquivos
  4. rafael goulart – http://tech.rgou.net 6 Conteúdo estático 02 INTERNET CLIENTE

    – Navegador/Browser Chrome / Firefox / Internet Explorer / Opera / (outros) SERVIDOR HTTP Apache IIS (outros) index.html Página estática HTML arquivos figura.jpg animacao.swf texto.pdf imagens outras mídias REQUEST RESPONSE
  5. rafael goulart – http://tech.rgou.net 7 Conteúdo Dinâmico INTERNET CLIENTE –

    Navegador/Browser Chrome / Firefox / Internet Explorer / Opera / (outros) SERVIDOR HTTP Apache IIS (outros) index.html Página estática HTML arquivos figura.jpg animacao.swf texto.pdf imagens outras mídias index.php index.asp página dinâmica PHP / ASP Banco de dados Sistema de arquivos Servidor de correio ??? HTML imagem PDF outras mídias
  6. rafael goulart – http://tech.rgou.net 8 URL (Uniform Resource Locator) Protocolo

    Endereço do Servidor : porta (normalmente seu nome de host/domínio) (a porta é opcional) Recurso no servidor (no caso de serviços Web, diretório/arquivo) http://www.dominio.com.br/cursos/teste.html
  7. rafael goulart – http://tech.rgou.net 9 URL - Protocolo “Língua comum”

    para comunicação entre computadores Padrão de requisição e resposta Independência de suas plataformas, ambientes, linguagens de programação Protocolos comuns em servidores Web: HTTP e HTTPS (site seguro com SSL)
  8. rafael goulart – http://tech.rgou.net 10 URL - Endereço do Servidor

    : Porta Geralmente um endereço DNS em FQDN (Fully Qualified Domain Name - Nome de Domínio Plenamente Qualificado) Também pode ser o endereço IP Porta padrão para HTTP: 80 Porta padrão para HTTPS: 443
  9. rafael goulart – http://tech.rgou.net 11 URL - Diretório/Arquivo Sendo DocumentRoot

    no Apache2: /var/www/ c:\xampp\htdocs ...então a URL http://localhost/cursos/teste.html ...abre o arquivo: /var/www/cursos/teste.html c:\xampp\htdocs\cursos\teste.html
  10. rafael goulart – http://tech.rgou.net 12 URL – DirectoryIndex Configuração do

    arquivo “padrão” para índice de diretório ou Arquivo procurado dentro do diretório quando é omitido o nome arquivo na URL Padrões: index.html index.php
  11. rafael goulart – http://tech.rgou.net 14 XAMPP • Pacote pré-configurado para

    desenvolvimento web • Disponível para Windows, Linux, MAC • **NÃO** é aconselhado para ambiente de produção! • XAMPP Lite 1.7.3 – versão reduzida • Apache 2.2.14 (IPv6 enabled) • MySQL 5.1.41 + PBXT engine • PHP 5.3.1 • PhpMyAdmin 3.2.4 • XAMPP Control Panel 2.5.8 • … e mais algumas coisinhas • http://www.apachefriends.org/pt_br/xampp.html
  12. rafael goulart – http://tech.rgou.net 15 XAMPP Instalação Onde: • http://www.apachefriends.org/en/xampp-

    windows.html#646 Tutoriais de instalação: • http://therootnewbie.wordpress.com/2010/08/16/tutorial- instalando-o-xampp-no-windows/ • http://www.youtube.com/watch?v=YrrToP70WH4 • http://www.joaobarroca.net/2010/03/18/instalando- xampp-lite/
  13. rafael goulart – http://tech.rgou.net 17 IDEs para PHP Netbeans •

    Melhor opção livre • Integração com symfony • http://netbeans.org/downloads/index.html Eclipse + PDT Tools • http://www.eclipse.org/downloads/
  14. rafael goulart – http://tech.rgou.net 20 Sintaxe Básica // STANDARD TAGS

    <?php comandos; ?> // SCRIPT TAGS <script language="php"> comandos; </script> // SHORT TAGS <? comandos; ?> // ASP TAGS <% comandos; %>
  15. rafael goulart – http://tech.rgou.net 21 <?php phpinfo() echo "testando"; ?>

    Término de comando (ponto e vírgula) ERRO!! Parse error: syntax error, unexpected T_ECHO in /var/www/teste/teste.php on line 3 EXCEÇÃO: Estruturas de controle
  16. rafael goulart – http://tech.rgou.net 22 Comentários <?php // Comentário de

    uma única linha, echo "teste"; // ou até o final da linha # Comentário de uma única linha, ou até o final da linha (pouco usado) /* Comentário em múltiplas linhas */ ?>
  17. rafael goulart – http://tech.rgou.net 24 Variáveis no PHP • Linguagem

    fracamente tipada • Tipagem dinâmica • Variáveis iniciam com $ (cifrão) seguido de letra ou underscore ( _ )
  18. rafael goulart – http://tech.rgou.net 25 Váriaveis válidas e inválidas //

    Variáveis // válidas $dia $Mes $_ano // Variáveis // inválidas $*dia $9meses $(nome)
  19. rafael goulart – http://tech.rgou.net 26 Tipos de dados • Array

    • Objects ESCALARES (armazena apenas um valor) COMPOSTOS OUTROS • boolean • int • float • string • NULL • resource
  20. rafael goulart – http://tech.rgou.net 27 Atribuindo valores $teste = "Linux";

    $total = 867; $teste = "Linux"; $php = '--$teste--\n'; // --$teste--\n $php = "--$teste--\n"; // --Linux-- //(com quebra de linha) $teste = <<<TEXT Uma linha de texto TEXT;
  21. rafael goulart – http://tech.rgou.net 30 Estruturas de controle Alteram o

    fluxo do script $x = 1 $x > 0 INI echo "ERRO" echo "OK" FIM
  22. rafael goulart – http://tech.rgou.net 32 Condição: if if (condição) comando;

    if (condição){ comando1; comando2; } $variável = (condição) ? 'Verdadeiro' : 'Falso'; <?php if ($x > 0) echo "OK"; if ($x > 0) { echo "OK - "; echo date('d/m/Y'); } $sexoExtenso = ($sexo == 'M') ? 'Masculino' : 'Feminino';
  23. rafael goulart – http://tech.rgou.net 33 Condição: if/else if (condição){ comando1;

    } else { comando2; } if (condição){ comando1; comando2; } else { comando3; comando4; } <?php if ($x > 0) { echo "OK"; } else { echo "ERRO"; } if ($x > 0 { echo "OK - "; echo date('d/m/Y'); } else { echo "ERRO"; echo date('d/m/Y'); }
  24. rafael goulart – http://tech.rgou.net 34 Condição: elseif if (condição){ comando1;

    } elseif (condição) { comando2; } else { comando3; comando4; } <?php if ($x > 0) { echo "positivo" } elseif ($x == 0){ echo "zero"; } else { echo "negativo"; }
  25. rafael goulart – http://tech.rgou.net 35 Condição: switch switch (variável) {

    case 'a': comando1; break; case 'b': case 'c': comando2; break; case 'd': default: comando3; break; } <?php switch ($teste) { case 'a': echo 'Ahhhh'; break; case 'b': case 'c': echo 'boca'; break; case 'd': default: echo 'dentes'; break; }
  26. rafael goulart – http://tech.rgou.net 36 Condições – Teste Lógico Comparação

    entre uma variável e um valor if ($teste != 50) Comparação entre uma variável e outra variável if ($teste == $outro) Comparação entre uma variável e um cálculo if ($teste >= $outro + 50 + count($matriz)) Saída true/false de um comando if (is_array($teste)) Verificação do valor de uma variável if ($teste)
  27. rafael goulart – http://tech.rgou.net 37 Condições – Teste Lógico Testando

    valor e tipo if ($teste === 50) Testando se atribuição é verdadeira if ($teste = mysqli_fetch_row($result)) Uso do AND (&&) if ($teste == 50 && $outro > 20) Uso do OR (||) if ($teste == 50 || $outro > 20) Negação if (!$teste)
  28. rafael goulart – http://tech.rgou.net 38 Condição: while while (condição) {

    comando1; comando2; } <?php while ($linha = mysqli_fetch_row($resultado) ) { echo $linha['nome'] . '<br/>'; }
  29. rafael goulart – http://tech.rgou.net 39 Laços de Repetição: for $i

    <= 10 $i = $i +1 ... ... SIM NÃO $i = 1 echo $i <?php for($i=1 ; $i<=10 ; $i++) { echo $i . '<br/>'; } for (valor_inicial ; limite ; incremento) { comando1; comando2; }
  30. rafael goulart – http://tech.rgou.net 41 O que são funções •

    Blocos de código reutilizável. • Elas podem ou não solicitar parâmetros (obrigatória ou opcionalmente) • Podem ou não retornar valores.
  31. rafael goulart – http://tech.rgou.net 42 Sintaxe Básica function fazerAlgo ($arg_1,

    $arg_2, /* ..., */ $arg_n) { echo "Exemplo de função"; return $valor_retornado; } Lista de parâmetros ou argumentos (entre parênteses) Abertura Palavra chave Fechamento Nome da função Retorno opcional de valores Comandos
  32. rafael goulart – http://tech.rgou.net 43 Função sem parâmetros <?php function

    mostrarTitulo () { echo "<h1>Capítulo 1</h1>\n"; } mostrarTitulo(); ?> Mesmo sem parâmetros, exige abrir e fechar parênteses Chamando a função <h1>Capítulo 1</h1>
  33. rafael goulart – http://tech.rgou.net 44 Função com parâmetro <?php function

    mostrarTitulo ($numero) { echo "<h1>Capítulo $numero</h1>\n"; } mostrarTitulo(1); $titulo = '2'; mostrarTitulo($titulo); ?> Parâmetro obrigatório Chamando a função passando o parâmetro com e sem uso de variável <h1>Capítulo 1</h1> <h1>Capítulo 2</h1>
  34. rafael goulart – http://tech.rgou.net 45 Função com parâmetro opcional <?php

    function mostrarTitulo ($numero=1) { echo "<h1>Capítulo $numero</h1>\n"; } mostrarTitulo(); $titulo = '2'; mostrarTitulo($titulo); ?> Parâmetro opcional Chamando a função passando ou não um parâmetro opcional <h1>Capítulo 1</h1> <h1>Capítulo 2</h1>
  35. rafael goulart – http://tech.rgou.net 46 Função com retorno <?php function

    mostrarTitulo ($numero=1) { return "<h1>Capítulo $numero</h1>\n"; } echo mostrarTitulo(); $texto = mostrarTitulo(2); echo $texto; ?> Retornando valor Utilizando o valor retornado 1. dando saída 2. atribuindo variável <h1>Capítulo 1</h1> <h1>Capítulo 2</h1>
  36. rafael goulart – http://tech.rgou.net 47 Escopo das variáveis • O

    escopo de uma variável é o contexto onde ela foi definida • Variáveis definidas dentro da função só são visíveis dentro da função • Variáveis definidas fora da função não estão disponíveis para a função • Variáveis SuperGlobais do PHP estão disponíveis em qualquer lugar
  37. rafael goulart – http://tech.rgou.net 48 Escopo em funções <?php $nome

    = 'Maria'; $idade = '25'; $sexo = 'Feminino'; function exibirPessoa () { global $nome; echo "Nome: $nome\n"; echo "Idade: $idade\n"; echo "Sexo: {$GLOBALS['sexo']}"; } exibirPessoa(); Declarando variável como global Fora do escopo! Nome: Maria Idade: Sexo: Masculino ok! ok!
  38. rafael goulart – http://tech.rgou.net 49 Variáveis static em funções <?php

    function contador(){ static $x = 0; return $x++; } echo contador() . "\n"; echo contador() . "\n"; echo contador() . "\n"; Variável static mantém seu valor entre execuções da função no mesmo script 0 1 2
  39. rafael goulart – http://tech.rgou.net 50 Atribuição por referência <?php $a

    = 1; $b = $a; $b++; CONTEÚDO DAS VARIÁVEIS NA MEMÓRIA $a = 1 $a = 1 $b = 1 $a = 1 $b = 2 ATRIBUIÇÃO NORMAL
  40. rafael goulart – http://tech.rgou.net 51 Atribuição por referência <?php $a

    = 1; $b = &$a; $b++; CONTEÚDO DAS VARIÁVEIS NA MEMÓRIA $a = 1 $a = 1 $b = 1 $a = 2 $b = 2 ATRIBUIÇÃO POR REFERÊNCIA
  41. rafael goulart – http://tech.rgou.net 52 <?php function soma( &$tt, $acrescimo)

    { $tt += $acrescimo; } $total = 5; soma($total, 10); echo $total; CONTEÚDO DAS VARIÁVEIS NA MEMÓRIA $total = 5 $total = 5 $tt = 5 $total = 15 $tt = 15 Passagem por referência 15
  42. rafael goulart – http://tech.rgou.net 54 Paradigma VISÃO sobre uma realidade

    ou problema e a FORMA DE ATUAR para enfrentar esta realidade ou problema
  43. rafael goulart – http://tech.rgou.net 55 Classe ABSTRAÇÃO de características e

    ações comuns de um conjunto de indivíduos ABSTRAÇÃO de valores que caracterizam seres semelhantes e de seu comportamento
  44. rafael goulart – http://tech.rgou.net 56 Objeto INDIVÍDUO ÚNICO que é

    construído com base nas características e ações de uma classe INSTÂNCIA DA CLASSE entidade criada utilizando a estrutura de uma classe
  45. rafael goulart – http://tech.rgou.net 57 Atributo Caraterística de uma classe

    Valores ABSTRAÍDOS de um conjunto de indivíduos e que o formam dentro de um determinado contexto
  46. rafael goulart – http://tech.rgou.net 58 Método Ações, procedimentos, funcionalidades Comportamentos

    ABSTRAÍDOS de um conjunto de indivíduos e que o formam dentro de um determinado contexto
  47. rafael goulart – http://tech.rgou.net 59 Encapsulamento Proteção sob atributos e

    métodos de uma classe. Só são vistos os métodos e atributos públicos sem a necessidade de saber qual sãoimplementados  Público  Visível por todos  Protegido  Visível pelas classes pai e filhas  Privado  Visível apenas pela própria classe
  48. rafael goulart – http://tech.rgou.net 60 Herança A capacidade de uma

    classe de absorver, herdar as características e ações de outra classe
  49. rafael goulart – http://tech.rgou.net 61 Classe Abstrata Proteção que impede

    que uma classe seja instanciada diretamente. Ela só serve de base para classes filhas.
  50. rafael goulart – http://tech.rgou.net 62 Interface Conjuntos de métodos que

    determinadas classes devem obrigatoriamente implementar
  51. rafael goulart – http://tech.rgou.net 63 Exemplo abstract class Veículo class

    Carro extends Veículo HERANÇA class Moto extends Veículo class Ônibus extends Veículo $meuCarro = new Carro OBJETO
  52. rafael goulart – http://tech.rgou.net 65 Classe básica class Pessoa {

    protected $nome; private $sexo = 'M'; public $dataNascimento; public function getNome() { return $this->nome; } public function setNome($nome) { $this->nome = $nome; } } Atributos $this auto-referência dentro do escopo de OBJETO GETTER SETTER Declaração da Classe
  53. rafael goulart – http://tech.rgou.net 66 Classe extendida class Professor extends

    Pessoa { public $disciplina; public function getDisciplina() { return $this->disciplina; } public function setDisciplina($disciplina) { $this->nome = '$disciplina'; } public function setNome($nome) { $this->nome = "Professor $nome"; } } SOBRECARGA
  54. rafael goulart – http://tech.rgou.net 67 Classe abstrata, métodos abstratos abstract

    class Pessoa { protected $nome; private $sexo = 'M'; public $dataNascimento; abstract public function enviarEmail(); }
  55. rafael goulart – http://tech.rgou.net 68 Instância de Classes = Objetos

    <?php include_once('Pessoa.class.php'); $joao = new Pessoa; $joao->setNome('João'); $joao->dataNascimento = '12/02/1986'; echo $joao->getNome(); João
  56. rafael goulart – http://tech.rgou.net 69 Métodos mágicos public function __construct($nome)

    { $this->nome = $nome; } public function __toString() { return $this->nome; } public function __get($name){ return $this->$name; } public function __set($name, $value){ $this->$name = $value; } Retorno como String Construtor da classe GETTER SETTER
  57. rafael goulart – http://tech.rgou.net 70 Acesso a métodos estáticos /

    constantes <?php class Data { const SEPARADOR_BANCO = '-'; const SEPARADOR_TELA = '/'; static public function formatarBanco ($data){ $dataTemp = explode(self::SEPARADOR_TELA,$data); return $dataTemp[2] . '-' . $dataTemp[1] . '-' . $dataTemp[0]; } } $dataTela = '31/12/2008'; echo Data::formatarBanco ($dataTela) . ' <br/> ' . Data::SEPARADOR_TELA; self auto-referência dentro do escopo ESTÁTICO :: delimitador de método ou atributo ESTÁTICO 2008-12-31<br/>/
  58. rafael goulart – http://tech.rgou.net 72 Tipos de form TAGs •

    input • text • password • hidden • checkbox • radio • file • submit / reset (buttton) • select • textarea • form • button
  59. rafael goulart – http://tech.rgou.net 73 Anatomia de uma TAG <tag

    attribute1=”foo” attribute*n=”bar” > VALOR </tag> <tag attribute1=”foo” attribute*n=”foo” /> • Abertura TAG • Atributo 1 • Atributo * n • Fechamento da TAG • VALOR • Final da TAG • Abertura TAG • Atributo 1 • Atributo * n • Fechamento/Final da TAG
  60. rafael goulart – http://tech.rgou.net 74 Classes para Formulário FormField FormFieldInputPassword

    FormFieldInputChekbox FormFieldInputHidden FormFieldInputText FormFieldInputRadio FormFieldInputFile FormFieldSelect FormFieldTextarea Form
  61. rafael goulart – http://tech.rgou.net GET – Por URL processa.php?id=50&nome=Joaquim&fone[cel]=99998888 processa.php

    <?php echo "{$_GET['id']} - " . $_GET['nome'] . ' - Celular: ' . $_GET['fone']['cel']; GET 50 – Joaquim – Celular: 99998888
  62. rafael goulart – http://tech.rgou.net GET – Por Formulário formulario.php <form

    action="processa.php" method="get"> Id <input name="id" id="id" /><br/> Nome <input name="nome" id="nome" /><br/> Cel <input name="fone[cel]" id="fone_cel" /><br/> <button type="submit">Enviar</button> </form>
  63. rafael goulart – http://tech.rgou.net GET – Por Formulário processa.php <?php

    echo "{$_GET['id']} - " . $_GET['nome'] . ' - Celular: ' . $_GET['fone']['cel']; GET 50 – Joaquim – Celular: 99998888
  64. rafael goulart – http://tech.rgou.net formulario.php <form action="processa.php" method="get"> Id <input

    name="id" id="id" /><br/> Nome <input name="nome" id="nome" /><br/> Cel <input name="fone[cel]" id="fone_cel" /><br/> <button type="submit">Enviar</button> </form> GET – Por Formulário processa.php <?php echo "{$_GET['id']} - " . $_GET['nome'] . ' - Celular: ' . $_GET['fone']['cel']; GET 50 – Joaquim – Celular: 99998888
  65. rafael goulart – http://tech.rgou.net POST formulario.php <form action="processa.php" method="post"> Id

    <input name="id" id="id" /><br/> Nome <input name="nome" id="nome" /><br/> Cel <input name="fone[cel]" id="fone_cel" /><br/> <button type="submit">Enviar</button> </form>
  66. rafael goulart – http://tech.rgou.net POST processa.php <?php echo "{$_POST['id']} -

    " . $_POST['nome'] . ' - Celular: ' . $_POST['fone']['cel']; POST 50 – Joaquim – Celular: 99998888
  67. rafael goulart – http://tech.rgou.net POST formulario.php <form action="processa.php" method="post"> Id

    <input name="id" id="id" /><br/> Nome <input name="nome" id="nome" /><br/> Cel <input name="fone[cel]" id="fone_cel" /><br/> <button type="submit">Enviar</button> </form> processa.php <?php echo "{$_POST['id']} - " . $_POST['nome'] . ' - Celular: ' . $_POST['fone']['cel']; POST 50 – Joaquim – Celular: 99998888
  68. rafael goulart – http://tech.rgou.net POST x GET • POST é

    enviado no corpo do request ("oculto") • GET é "bookmarkable" (permite adicionar aos favoritos) • POST permite multipart/data (envio de arquivos anexos) • POST permite envio de grande quantidade de dados
  69. rafael goulart – http://tech.rgou.net POST x GET • GET Padrão

    de envio de parâmetros para RECUPERAR DADOS • POST Padrão de envio de dados para serem ARMAZENADOS
  70. rafael goulart – http://tech.rgou.net Criando URLs url.php <?php $nome =

    'joao da silva'; $url = '/meuscript.php?nome=' . $nome; echo '<a href="' . $url . '">Editar Nome</a>'; <a href="/meuscript.php? nome=joao%20da%20silva">Editar Nome</a>
  71. rafael goulart – http://tech.rgou.net Biblioteca PDO • Camada de abstração

    (*) de dados padrão do PHP 5 • Permite a construção de aplicações multibanco • Acesso Orientado a Objeto ou procedural (*) Camada de Abstração é uma biblioteca que permite acesso padronizado a vários recursos semelhantes, mas com acesso e manipulação diferente, como bancos de dados.
  72. rafael goulart – http://tech.rgou.net Biblioteca PDO – drivers disponíveis •

    Microsoft SQL Server and Sybase • Firebird/Interbase • IBM / DB2 • Informix • MySQL • Oracle (experimental) • PostgreSQL • SQLite • Driver 4D for PDO • ODBC (acesso a vário outros bancos que possuam driver odbc )
  73. rafael goulart – http://tech.rgou.net Biblioteca PDO - Conexão <?php //

    Conexão utilizando DSN = Data Source Name // Exemplo com MySQL $dsn = 'mysql:host=localhost;dbname=banco'; // Exemplo com Postgres $dsn = 'pgsql:host=localhost;dbname=banco'; // A conexão em si $conexao = new PDO($dsn, 'user', 'password');
  74. rafael goulart – http://tech.rgou.net Biblioteca PDO – Execução de consultas

    <?php // (...) conexão anteriormente realizada // SELECT $resultado = $conexao->query($sql); $totalRegistros = $resultado->rowCount(); // INSERT, UPDATE, DELETE $regAfetados = $conexao->exec($sql);
  75. rafael goulart – http://tech.rgou.net SELECT SELECT * FROM pessoa WHERE

    id = 50 <?php // (...) conexão anteriormente realizada $sql = "SELECT * FROM pessoa WHERE id = 50"; $resultado = $conexao->query($sql);
  76. rafael goulart – http://tech.rgou.net SELECT – com parâmetro SELECT *

    FROM pessoa WHERE id = ??? <?php // (...) conexão anteriormente realizada $id = 50; $sql = "SELECT * FROM pessoa WHERE id = $id"; $resultado = $conexao->query ($sql);
  77. rafael goulart – http://tech.rgou.net SELECT – com parâmetro string SELECT

    * FROM pessoa WHERE nome = '???' <?php // (...) conexão anteriormente realizada $nome = 'João'; $sql = "SELECT * FROM pessoa WHERE nome = '$nome'"; $resultado = $conexao->query($sql);
  78. rafael goulart – http://tech.rgou.net SELECT – strings de POST ou

    GET SELECT * FROM pessoa WHERE nome LIKE '%???%' <?php // (...) conexão anteriormente realizada // POST $sql = "SELECT * FROM pessoa WHERE nome LIKE '%{$_POST['nome']}%'"; // GET $sql = "SELECT * FROM pessoa WHERE nome LIKE '%{$_GET['nome']}%'"; $resultado = $conexao->query($sql);
  79. rafael goulart – http://tech.rgou.net INSERT INSERT INTO pessoa(nome,sexo) VALUES ('João',

    'M') <?php // (...) conexão anteriormente realizada $sql = "INSERT INTO pessoa(nome,sexo) VALUES ('João', 'M')"; $resultado = $conexao->exec($sql);
  80. rafael goulart – http://tech.rgou.net INSERT – com parâmetro string INSERT

    INTO pessoa(nome,sexo) VALUES ('???', '???') <?php // (...) conexão anteriormente realizada $nome = 'João'; $sexo = 'M'; $sql = "INSERT INTO pessoa(nome,sexo) VALUES ('$nome', '$sexo')"; $resultado = $conexao->exec ($sql);
  81. rafael goulart – http://tech.rgou.net INSERT – strings de POST ou

    GET INSERT INTO pessoa(nome,sexo) VALUES ('???', '???') <?php // (...) conexão anteriormente realizada $nome = 'João'; $sexo = 'M'; $sql = "INSERT INTO pessoa(nome,sexo) VALUES ('{$_POST['nome']}', '{$_POST['sexo']}')"; // ou $sql = "INSERT INTO pessoa(nome,sexo) VALUES ('{$_GET['nome']}', '{$_GET['sexo']}')";
  82. rafael goulart – http://tech.rgou.net UPDATE UPDATE pessoa SET nome='João',sexo='M' WHERE

    id = 50 <?php // (...) conexão anteriormente realizada $sql = "UPDATE pessoa SET nome='João',sexo='M' WHERE id = 50"; $resultado = $conexao->exec ($sql);
  83. rafael goulart – http://tech.rgou.net UPDATE – com parâmetro string UPDATE

    pessoa SET nome='???', sexo='???' WHERE id = ???) <?php // (...) conexão anteriormente realizada $nome = 'João'; $sexo = 'M'; $id = 50; $sql = "UPDATE pessoa SET nome='$nome', sexo='$sexo' WHERE id = $id)"; $resultado = $conexao->exec ($sql);
  84. rafael goulart – http://tech.rgou.net UPDATE – strings de POST ou

    GET UPDATE pessoa SET nome='???', sexo='???' WHERE id = ???) <?php // (...) conexão anteriormente realizada $sql = "UPDATE pessoa SET nome='{$_POST['nome']}', sexo='{$_POST['sexo']}' WHERE id = {$_POST['id']})"; // ou $sql = "UPDATE pessoa SET nome='{$_GET['nome']}', sexo='{$_GET['sexo']}' WHERE id = {$_GET['id']})"; $resultado = $conexao->exec ($sql);
  85. rafael goulart – http://tech.rgou.net DELETE DELETE FROM pessoa WHERE id

    = 50 <?php // (...) conexão anteriormente realizada $sql = "DELETE FROM pessoa WHERE id = 50"; $resultado = $conexao->exec ($sql);
  86. rafael goulart – http://tech.rgou.net DELETE – com parâmetro string DELETE

    FROM pessoa WHERE id = ??? <?php // (...) conexão anteriormente realizada $id = 50; $sql = "DELETE FROM pessoa WHERE id = $id"; $resultado = $conexao->exec($sql);
  87. rafael goulart – http://tech.rgou.net UPDATE – strings de POST ou

    GET DELETE FROM pessoa WHERE id = ??? <?php // (...) conexão anteriormente realizada $sql = "DELETE FROM pessoa WHERE id = {$_POST['id']}"; // ou $sql = "DELETE FROM pessoa WHERE id = {$_GET['id']}"; $resultado = $conexao->exec($sql);
  88. rafael goulart – http://tech.rgou.net CRUD Conjunto de telas que realizam

    a operação básica num banco de dados • C = Create = Criar registro • R = Retrieve = Recuperar ou Listar rgistros • U = Update = Atualizar registros • D = Delete = Excluir registros
  89. Consultor em Software Livre Desenvolvedor Web PHP | XHTML |

    CSS | Web Standards @rgou [email protected] http://tech.rgou.net http://github.com/rafaelgou Rafael Goulart