Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Back-end PHP e MySQL

Back-end PHP e MySQL

Desenvolvimento back-end com PHP:
Back-end PHP e MySQL

Avatar for Alcione Morais

Alcione Morais

August 29, 2025
Tweet

More Decks by Alcione Morais

Other Decks in Education

Transcript

  1. Programação para Internet II: Prof. Alcione Rosa de Morais Back-end

    PHP - MySQL Área: Informação e comunicação I Tema: Desenvolvimento back-end com PHP Público: Ensino Médio - Curso Técnico em Informática Integrado
  2. Desenvolvimento back-end com PHP Aula 20/05 Funções, Arrays e Formulários

    Aula 27/05 Back-end PHP e MySQL Aula 03/06 Autenticação Aula 10/05 Cookies, Sessions IFSUL-Sapiranga | Desenvolvimento back-end com PHP 2
  3. Roteiro IFSUL-Sapiranga | Desenvolvimento back-end com PHP 3 • Back-end

    • Persistência de Dados • Back-end PHP conectando MySQL • Exercícios – moodle
  4. Back-end IFSUL-Sapiranga | Desenvolvimento back-end com PHP 4 ▪ O

    backend é a estrutura que possibilita a operação do sistema, enquanto o front-end é responsável pela parte visual, como apresentação, design, linguagens, cores, entre outros ▪ Parte da aplicação que tem duas responsabilidades principais: executar lógicas mais complexas e armazenar os dados da aplicação. ▪ Back-end é executado normalmente em servidores conectados na Internet.
  5. ▪ Em um software, Persistência de dados é o processo

    garante que determinados dados da aplicação fiquem salvos mesmo após o encerramento da aplicação e que possam ser recuperados. ▪ A Persistência de dados pode ser conseguida por armazenamento em qualquer meio físico recuperável. Um dos mais comuns é o Banco de Dados. ▪ Qualquer site/aplicativo que armazena informações mesmo depois de reiniciar o navegador provavelmente utiliza um Banco de Dados. E-commerces, Notícias, Cadastro de Clientes, Redes sociais etc. Persistência de Dados IFSUL-Sapiranga | Desenvolvimento back-end com PHP 5
  6. (2) O PHP acessa o SGDB através de funções de

    conexão e consultas. (3) O SGBD retorna um objeto (resultSet) para o PHP Persistência de dados (1) O desenvolvedor manipula as funções... (4) …etrata os resultados IFSUL-Sapiranga | Desenvolvimento back-end com PHP 6
  7. <?php $conexao = conectar_no_BD ("endereco","usuario","senha"); selecionar_o_BD ($conexao,"nome_do_BD"); $consulta = 'SELECT

    * FROM tabela'; $conjunto_de_resultado = executa_consulta_no_bd($conexao, $consulta); $resultado = transforma_em_array($conjunto_de_resultado); foreach ($resultado as $campo=>$valor) { (...) } ?> Persistência de dados IFSUL-Sapiranga | Desenvolvimento back-end com PHP 7
  8. 1. Acesso SGDB e Banco de Dados 2. Informações de

    acesso(usuário e senha) 3. Conectar ao SGDB - MySQL 4. Selecionar o Banco de Dados 5. Executar consultas no Banco de Dados. 6. Exibir os resultados 7. Fechar a conexão. Back-end PHP conectando MySQL IFSUL-Sapiranga | Desenvolvimento back-end com PHP 8
  9. 1. Acesso SGDB e Banco de Dados 2. Informações de

    acesso(usuário e senha) 3. Conectar ao SGDB - MySQL 4. Selecionar o Banco de Dados 5. Executar consultas no Banco de Dados. 6. Exibir os resultados 7. Fechar a conexão. Back-end PHP conectando MySQL IFSUL-Sapiranga | Desenvolvimento back-end com PHP 9
  10. Classe mysqli Página 271, Capítulo 11: Accessing Your MySQL Database

    from the Web with PHP Conexão entre o PHP e um banco de dados MySQL 3. Conectar ao SGDB (MySQL) IFSUL-Sapiranga | Desenvolvimento back-end com PHP 10
  11. Classe mysqli <?php // // ========== Config ============ $_DB['server'] =

    'localhost’; $_DB['user'] = 'root'; $_DB['password'] = 'senha'; $_DB['database'] = 'nome_do_banco'; // Servidor MySQL // Usuário MySQL // Senha MySQL // Banco de dados MySQL // ============================== mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // Desativa relatórios de erros try { $mysqli = new mysqli($_DB['server'], $_DB['user'], $_DB['password'], $_DB['database']); $mysqli->set_charset("utf8mb4"); } catch (Exception $e) { error_log($e->getMessage()); exit(‘Não foi possível conectar...'); } ?> 3. Conectar ao SGDB (MySQL) IFSUL-Sapiranga | Desenvolvimento back-end com PHP 11
  12. 1. Acesso SGDB e Banco de Dados 2. Informações de

    acesso(usuário e senha) 3. Conectar ao SGDB - MySQL 4. Selecionar o Banco de Dados 5. Executar consultas no Banco de Dados. 6. Exibir os resultados 7. Fechar a conexão. Back-end PHP conectando MySQL IFSUL-Sapiranga | Desenvolvimento back-end com PHP 13
  13. Toda consulta em banco, ou qualquer outro tipo de inserção

    de SQL, deve ser feita através de "instruções preparadas" (prepared statements). 1. Definir uma consulta SQL com espaços reservados (placeholders ?) no lugar dos valores. 2. Vincular variáveis aos placeholders ?, especificando as variáveis e seus tipos (i: integer, d: double, s: string, b: blob). 3. Executar a consulta. 5. Executar consultas no banco de dados $consulta = $mysqli->prepare("SELECT * FROM tabela WHERE coluna = ?"); $consulta->bind_param("s", $variavel); $consulta->execute(); IFSUL-Sapiranga | Desenvolvimento back-end com PHP 14
  14. Exemplos $consulta = $mysqli->prepare("INSERT INTO tabela (id, nome) VALUES (?,

    ?)"); $consulta->bind_param("is", $_POST['id'], $_POST['nome']); $consulta->execute(); $consulta->close(); $consulta = $mysqli->prepare("UPDATE tabela SET nome = ? WHERE id = ?"); $consulta->bind_param("si", $_POST['nome'], $id); $consulta->execute(); $consulta->close(); $consulta = $mysqli->prepare("DELETE FROM tabela WHERE id = ?"); $consulta->bind_param("i", $id); $consulta->execute(); $consulta->close(); 5. Executar consultas no banco de dados IFSUL-Sapiranga | Desenvolvimento back-end com PHP 15
  15. Exemplo inseguro, sem prepared statements <?php /* Considere um formulário

    não validado, podendo ser qualquer coisa que o usuário queira inserir! Por exemplo: */ $usuario = $_POST['usuario']; // Aqui foi inserido: Alcione $senha = $_POST['senha']; // Aqui foi inserido: ' OR ''=' // Consulta no banco para ver se o usuário pode autenticar $consulta = "SELECT * FROM users WHERE usuario='$usuario' AND senha='$senha';"; echo $consulta; ?> SELECT * FROM users WHERE usuario=‘Alcione' AND senha='' OR ''=''; 5. Executar consultas no banco de dados IFSUL-Sapiranga | Desenvolvimento back-end com PHP 16
  16. 1. Acesso SGDB e Banco de Dados 2. Informações de

    acesso(usuário e senha) 3. Conectar ao SGDB - MySQL 4. Selecionar o Banco de Dados 5. Executar consultas no Banco de Dados. 6. Exibir os resultados 7. Fechar a conexão. Back-end PHP conectando MySQL IFSUL-Sapiranga | Desenvolvimento back-end com PHP 18
  17. 6. Exibir os resultados $consulta = $mysqli->prepare("SELECT * FROM tabela

    WHERE coluna = ?"); $consulta->bind_param("s", $variavel); $consulta->execute(); Os resultados podem ser recuperados através do método getResult(). $resultado = $consulta->get_result(); Ao executar uma consulta, o resultado (e outras informações) pode ser acessado através do objeto mysqli. IFSUL-Sapiranga | Desenvolvimento back-end com PHP 19
  18. 6. Exibir os resultados Os resultados podem ser recuperados através

    do método getResult(). $resultado = $consulta->get_result(); E então devem ser formatados como um array. Como um array associativo: $resultado->fetch_all(MYSQLI_ASSOC); Como um array numérico: $resultado->fetch_all(MYSQLI_NUM) IFSUL-Sapiranga | Desenvolvimento back-end com PHP 20
  19. 6. Exibir os resultados Exemplo <?php … $consulta = $mysqli->prepare("SELECT

    id, nome FROM tabela WHERE id = ?"); $consulta->bind_param("i", $id); $consulta->execute(); $resultado = $consulta->get_result(); $resultadoFormatado = $resultado->fetch_all(MYSQLI_ASSOC); print_r($resultadoFormatado); ?> Array ( [0] => Array ( [id] => 1 [nome] => Alcione ) [1] => Array ( [id] => 2 [nome] => Cassiane ) ) IFSUL-Sapiranga | Desenvolvimento back-end com PHP 21
  20. 6. Exibir os resultados Exemplo <?php … $consulta = $mysqli->prepare("SELECT

    id, nome FROM tabela WHERE id = ?"); $consulta->bind_param("i", $id); $consulta->execute(); $resultado = $consulta->get_result(); $resultadoFormatado = $resultado->fetch_all(MYSQLI_ASSOC); echo "<table><tr><th>ID</th><th>NOME</th></tr>"; foreach ($resultadoFormatado as $linha) { echo "<tr><td>" . $linha['id'] . "</td><td>" . $linha['nome'] . "</td></tr>"; } echo "</table>"; ?> id nome 1 Alcione 2 Cassiane IFSUL-Sapiranga | Desenvolvimento back-end com PHP 23
  21. 6. Exibir os resultados Também é possível obter os resultado

    linha a linha <?php … $consulta = $mysqli->prepare("SELECT id, nome FROM tabela WHERE id = ?"); $consulta->bind_param("i", $id); $consulta->execute(); $resultado = $consulta->get_result(); echo "<table><th>ID</th><th>NOME</th>"; while ($linha = $resultado -> fetch_assoc()) { echo "<tr><td>" . $linha['id'] . "</td><td>" . $linha['nome'] . "</td></tr>"; } echo "</table>"; ?> id nome 1 Alcione 2 Cassiane IFSUL-Sapiranga | Desenvolvimento back-end com PHP 24
  22. 1. Acesso SGDB e Banco de Dados 2. Informações de

    acesso(usuário e senha) 3. Conectar ao SGDB - MySQL 4. Selecionar o Banco de Dados 5. Executar consultas no Banco de Dados. 6. Exibir os resultados 7. Fechar a conexão. Back-end PHP conectando MySQL IFSUL-Sapiranga | Desenvolvimento back-end com PHP 25
  23. A conexão e as consultas são fechadas automaticamente quando o

    script acaba, mas podem ser fechadas antes $consulta->close(); $mysqli->close(); 7. Fechar a conexão IFSUL-Sapiranga | Desenvolvimento back-end com PHP 26
  24. 1. Ter um SGDB e um Banco de Dados alvo

    2. Ter um usuário e uma senha no SGBD 3. Conectar ao SGDB (MySQL) 4. Selecionar o Banco de Dados 5. Executar consultas no Banco de Dados. 6. Exibir os resultados 7. Fechar a conexão. Back-end PHP conectando MySQL IFSUL-Sapiranga | Desenvolvimento back-end com PHP 27
  25. Exercícios IFSUL-Sapiranga | Desenvolvimento back-end com PHP 29 Em grupos

    de 3 discentes, fazer a atividade e postar no moodle. Na próxima aula os grupos apresentam uns para os outros No decorrer da semana, vou estar a tarde na sala de atendimento tirando duvidas e dando dicas
  26. Desenvolvimento back-end com PHP Aula 03/06 Autenticação de Usuários Cookies,

    Sessions Back-end PHP e MySQL Aula 27/05 Aula 10/06 Avaliação - Prova Aula 17/06 IFSUL-Sapiranga | Desenvolvimento back-end com PHP 30
  27. Referências IFSUL-Sapiranga | Desenvolvimento back-end com PHP 31 WELLING, Luke;

    THOMSON, Laura. PHP e MySQL web development/ 5th Edition. 5. ed. United States of America: Addison Wesley, 2017. 652 p. ISBN 9788535217148. OLIVEIRA, Cláudio Luís Vieira; ZANETTI, Humberto Augusto Piovesana. PHP: programe de forma rápida e prática. São Paulo: Expressa, 2021. 1 recurso online. ISBN 9786558110224. PHP MANUAL. Manual de referência do PHP. PHP.net, 2025. Disponível em: https://www.php.net/manual/pt_BR/. Acesso em: 14 mar. 2025. ALURA. PHP: uma introdução à linguagem. Alura, 2021. Disponível em: https://www.alura.com.br/artigos/php- uma-introducao-linguagem. Acesso em: 14 mar. 2025. HOSTNET. A história da linguagem de programação PHP e sua evolução. Hostnet, 2021. Disponível em: https://www.hostnet.com.br/blog/a-historia-da-linguagem-de-programacao-php-e-sua-evolucao/. Acesso em: 14 mar. 2025. JESSILYNEH. Zend Engine: entendendo o motor que impulsiona o PHP. SpeakerDeck, 2021. Disponível em: https://speakerdeck.com/jessilyneh/zend-engine-entendendo-o-motor-que-impulsiona-o-php. Acesso em: 14 mar. 2025.
  28. Desenvolvimento back-end com PHP: Prof. Alcione Rosa de Morais Back-end

    PHP e MySQL Área: Informação e comunicação I Tema: Desenvolvimento back-end com PHP Público: Ensino Médio - Curso Técnico em Informática Integrado