Você está na página 1de 48

PHP com MySQL Básico – Willian Martins – Engenheiro de

Software Sênior
Aula 1: Introdução ao PHP
• História do PHP
• Configuração do ambiente de desenvolvimento
• Sintaxe básica e tags do PHP

Aula 2: Fundamentos do PHP


• Variáveis e tipos de dados
• Operadores
• Estruturas de controle (if, else, switch)

Aula 3: Trabalhando com Arrays


• Definição e manipulação de arrays
• Funções para arrays
• Estruturas de repetição (for, foreach)

Aula 4: Funções em PHP


• Definindo e chamando funções
• Escopo de variáveis
• Valores de retorno

Aula 5: Introdução ao MySQL


• Conceitos de banco de dados
• Instalação e configuração do MySQL
• Primeiros comandos SQL

Aula 6: Integrando PHP com MySQL


• Conectando ao banco de dados com PHP
• Executando consultas SQL via PHP
• Tratamento de erros

Aula 7: CRUD Básico


• Criar (INSERT)
• Ler (SELECT)
• Atualizar (UPDATE)
• Deletar (DELETE)

Aula 8: Formulários e PHP


• Métodos GET e POST
• Validação de formulários com PHP
• Enviando dados para o MySQL

Aula 9: Sessões e Cookies


• Gerenciando sessões em PHP
• Utilizando cookies
• Conceitos de autenticação

Aula 10: Projeto Final - Aplicação Básica


• Planejamento da aplicação
• Desenvolvimento
• Testes e correção de bugs
Aula 1: Introdução ao PHP - História do PHP
O PHP, que significa "PHP: Hypertext Preprocessor", é uma linguagem de script de
servidor amplamente utilizada para o desenvolvimento web. Foi criado por Rasmus Lerdorf em
1994 inicialmente como uma simples coleção de scripts CGI escritos em C, chamada "Personal
Home Page Tools" para gerenciar informações pessoais e rastrear visitantes de seu currículo
online.
O que começou como um conjunto de macros Perl para manter seu currículo pessoal, logo
se transformou em uma implementação mais sofisticada que poderia interagir com bancos de
dados e criar páginas web dinâmicas. Lerdorf liberou o código-fonte para outros desenvolvedores
criarem sobre ele, e isso marcou o nascimento do PHP/FI, que poderia ser usado para desenvolver
aplicações web simples.
À medida que a comunidade de desenvolvimento começou a crescer, o PHP se
transformou. Em 1997, foi lançado o PHP 3, com a contribuição de outros desenvolvedores como
Andi Gutmans e Zeev Suraski, que ajudaram a reescrever o analisador (parser) do PHP. Com a
versão 3, o PHP foi renomeado para "PHP: Hypertext Preprocessor", fornecendo uma definição
recursiva e refletindo sua expansão além de páginas pessoais.
O PHP 4 foi lançado em 2000, introduzindo o Zend Engine, um importante avanço para
a linguagem que melhorou seu desempenho e viabilidade para aplicações maiores e mais
complexas.
A versão 5, que veio em 2004, aprimorou a linguagem com novos recursos orientados a
objetos, oferecendo mais poder e flexibilidade aos desenvolvedores.
O PHP 7 foi um marco importante, lançado em 2015, trazendo um desempenho
significativamente melhorado, um novo sistema de tipos e a coleta de lixo, que melhora a
eficiência da memória. PHP 7.4, por exemplo, apresentou melhorias de velocidade e preloading
de código.
O PHP 8, lançado em 2020, introduziu recursos como o Just-In-Time Compiler (JIT), que
promete melhorias de desempenho em certos tipos de código, e novas capacidades como
argumentos nomeados, atributos, união de tipos e match expression.
Hoje, o PHP continua a ser uma das linguagens de programação mais populares do mundo, com
uma grande comunidade de desenvolvedores e uma vasta gama de frameworks e bibliotecas,
provando ser uma ferramenta robusta para desenvolvedores web em todo o mundo.

Aula 1: Configuração do ambiente de desenvolvimento

Baixar o XAMPP:
1. Visite o Site Oficial: Vá para o site oficial do XAMPP apachefriends.org.
2. Escolha a Versão: Selecione a versão do XAMPP apropriada para o seu sistema
operacional (Windows, Linux ou MacOS).
3. Baixe o Instalador: Clique no botão de download para a versão escolhida. O download
começará automaticamente.

Instalar o XAMPP:
1. Executar o Instalador: Após o download, clique duas vezes no arquivo de instalação
para iniciar o processo de instalação.
2. Permissões do Sistema: Se estiver no Windows, você pode receber um aviso de Controle
de Conta de Usuário (UAC). Clique em "Sim" para continuar.
3. Setup Wizard: Siga as instruções no assistente de instalação. Durante a instalação, você
pode escolher quais componentes instalar. Certifique-se de que "PHP" e "MySQL"
estejam selecionados.
4. Selecionar o Diretório: Escolha um diretório para instalar o XAMPP. O padrão
geralmente é adequado.
5. Instalação Completa: Continue até que a instalação esteja completa e clique em 'Finish'.

Configurar o XAMPP:
1. Iniciar o Painel de Controle: Abra o XAMPP Control Panel. Se for a primeira vez, você
pode precisar confirmar algumas configurações de firewall.
2. Iniciar Serviços: Clique em 'Start' ao lado de 'Apache' e 'MySQL' para iniciar os
servidores. Você deve ver um sinal de "Running" e a cor das linhas deve mudar, indicando
que os servidores estão ativos.
3. Testar o PHP: Para testar se o PHP está funcionando, crie um arquivo chamado info.php
na pasta htdocs dentro da pasta XAMPP. Escreva o seguinte código dentro do arquivo:
<? php phpinfo(); ?>
4. Acessar Localhost: Abra um navegador e digite localhost/info.php na barra de
endereços. Se a instalação do PHP foi bem-sucedida, uma página com informações sobre
a configuração do PHP será exibida.
5. Configuração de Segurança: Por padrão, o XAMPP não está configurado com
segurança total. Para um ambiente de produção, você precisaria configurar senhas e
permissões. Para um ambiente de desenvolvimento local, essas configurações geralmente
são suficientes.
Com o XAMPP agora instalado e rodando, você tem um ambiente de desenvolvimento local que
pode interpretar código PHP e gerenciar bancos de dados MySQL. Você está pronto para começar
a desenvolver aplicações web em PHP.
Aula 1: Introdução ao PHP, Sintaxe básica e tags do PHP
A sintaxe do PHP é um conjunto de regras que define como um programa PHP deve ser escrito
para que o servidor possa interpretar e executar corretamente o código. Aqui estão os fundamentos
da sintaxe e as tags PHP:
Tags do PHP: O PHP é incorporado em HTML usando as tags do PHP. Qualquer código PHP
deve estar dentro dessas tags.
• Standard Tags: São as mais comuns e recomendadas para uso.
Short Echo Tags: Usadas frequentemente para imprimir uma única expressão. Elas são uma
forma abreviada da instrução echo.

Para usar as short echo tags, elas precisam estar habilitadas nas configurações do PHP
(short_open_tag).
Echo e Print: São instruções usadas para enviar dados para a saída, que geralmente é o navegador.
A instrução echo pode ser usada sem parênteses e pode imprimir várias expressões, enquanto
print só pode imprimir uma expressão e sempre retorna 1.
• Uso de echo:

Uso de print:

Comentários no PHP: Comentários são partes do código que não são executadas. Eles são
usados para explicar o código e podem ser úteis para você ou para outros desenvolvedores que
possam estar lendo o código.
• Comentários de linha única são feitos usando // ou #:
Comentários de múltiplas linhas são feitos usando /* */:

Pontos-Chave:
• Use sempre tags PHP padrão.
• echo e print são usados para exibir dados.
• Comente seu código para aumentar a legibilidade.
Esta é a base da sintaxe PHP e é crucial para começar a escrever scripts PHP. No próximo capítulo,
exploraremos mais sobre variáveis e tipos de dados em PHP.

Aula 2: Fundamentos do PHP, Variáveis e Tipos de Dados


Variáveis no PHP: As variáveis são usadas para armazenar dados, como textos de uma string,
números, etc. No PHP, uma variável começa com o sinal de dólar ($) seguido pelo nome da
variável.
• Definindo uma Variável:

• Regras para Nomes de Variáveis:


• Uma variável deve começar com uma letra ou o caractere sublinhado (_)
• Uma variável não pode começar com um número
• Uma variável só pode conter caracteres alfanuméricos e sublinhados (A-z, 0-9 e
_)
• Variáveis no PHP são sensíveis a maiúsculas e minúsculas ($Cor e $cor são duas
variáveis diferentes)
Tipos de Dados: PHP suporta dez tipos primitivos de dados organizados em três categorias
principais: tipos escalares (quatro tipos), tipos compostos (dois tipos) e tipos especiais (quatro
tipos).
• Tipos Escalares:
• Bool: Representa apenas dois valores: true ou false.

Int: Representa números inteiros.

Float (também conhecido como double): Representa números com ponto flutuante.

String: Representa uma sequência de caracteres.

Tipos Compostos:
• Array: Representa uma coleção de valores.
Object: Representa uma instância de uma classe.

Tipos Especiais:
• Resource: Representa uma referência a um recurso externo (como um arquivo ou
conexão de banco de dados).
• NULL: Representa uma variável sem valor.

É fundamental entender como usar variáveis e quais tipos de dados você pode atribuir a elas, pois
isso será a base para a manipulação de dados dentro de suas aplicações PHP. No próximo tópico,
exploraremos os operadores e como eles são usados para realizar operações matemáticas e lógicas
em variáveis.
No PHP, as variáveis são de tipagem dinâmica, o que significa que não é necessário declarar o
tipo de dado de uma variável. O tipo é determinado automaticamente pelo PHP dependendo do
contexto em que a variável é usada. Isso proporciona grande flexibilidade, mas também exige que
o programador preste atenção ao tipo de dados que uma variável contém em um dado momento.

Mais sobre Tipos de Dados em PHP:


• Tipagem Dinâmica: No PHP, uma variável pode começar sua vida como um tipo de
dado e ser reatribuída para outro tipo conforme necessário.
Aula 2: Fundamentos do PHP, Operadores
Operadores no PHP:
Operadores são símbolos que dizem ao PHP para executar operações específicas matemáticas, de
atribuição, de comparação ou lógicas. Vamos abordar os tipos mais comuns de operadores
utilizados no PHP:
• Operadores Aritméticos: São utilizados com valores numéricos para executar operações
matemáticas comuns, como adição, subtração, multiplicação e divisão.

Operadores de Atribuição: O operador de atribuição básico é =. Ele significa que o operandos


à esquerda recebe o valor da expressão à direita.

Operadores de Comparação: São usados para comparar dois valores.


Operadores Lógicos: Usados para combinar expressões condicionais.

Operadores de Incremento/Decremento: Usados para incrementar ou decrementar o valor de


uma variável.

Operadores de String: PHP possui dois operadores que são especificamente para strings.
Entendendo os operadores, você consegue realizar desde as operações mais simples às mais
complexas no PHP. No próximo tópico, discutiremos as estruturas de controle como if, else, e
switch, que permitem controlar o fluxo de execução do código.
Aula 2: Fundamentos do PHP, Estruturas de Controle
Estruturas de Controle no PHP:
As estruturas de controle permitem que seu script tome decisões e execute códigos diferentes com
base em condições específicas. Aqui estão as mais comuns:
• if: A estrutura if é uma das mais importantes. Ela executa algum código somente se uma
condição especificada é verdadeira.

else: O else complementa a estrutura if. O código dentro do bloco else é executado somente se a
condição if for falsa.

elseif / else if: Usado para especificar uma nova condição para testar, se a primeira condição for
falsa.
switch: A estrutura switch é similar a uma série de IFs, mas é mais limpa e mais fácil de ler com
muitas condições.

Cada uma dessas estruturas permite controlar o fluxo do código de maneiras diferentes. Ao usar
a if, else, e elseif, você pode executar diferentes blocos de código com base em diferentes
condições. O switch é particularmente útil quando você quer comparar a mesma variável (ou
expressão) com muitos valores diferentes e executar um bloco de código diferente dependendo
de qual valor ela corresponde.
No próximo tópico, abordaremos como os loops funcionam no PHP, o que permitirá que você
execute um código repetidamente enquanto uma condição especificada for verdadeira.

Aula 3: Trabalhando com Arrays, Definição e Manipulação de Arrays


Definição de Arrays:
No PHP, um array é uma estrutura de dados que permite armazenar várias valores em uma única
variável, facilitando a gestão de coleções de dados.
• Array Indexado: São arrays com índices numéricos. Você pode criar um array indexado
usando a função array() ou colchetes [].

Array Associativo: São arrays que usam chaves nomeadas que você atribui a eles.

Array Multidimensional: São arrays que contêm um ou mais arrays.

Manipulação de Arrays:
Você pode manipular arrays de várias formas, incluindo:
• Adicionar elementos ao final de um array com array_push() ou simplesmente usando []:
Remover o último elemento de um array com array_pop():

Adicionar/Remover elementos do início de um array com array_unshift() e array_shift():

Encontrar a posição de um elemento no array com array_search() ou verificar se um elemento


existe com in_array():

• Ordenar arrays com sort() para arrays indexados e asort() para arrays associativos.
No próximo tópico, abordaremos as funções para arrays, que são ferramentas poderosas para
manipular essas estruturas de dados de maneira ainda mais complexa e útil.

Aula 3: Trabalhando com Arrays, Funções para Arrays


O PHP fornece uma ampla gama de funções para manipulação de arrays, cada uma com sua
utilidade específica. Aqui estão algumas das mais comuns e úteis:
• count(): Conta o número de elementos de um array ou propriedades de um objeto.
array_merge(): Combina um ou mais arrays.

array_diff(): Compara dois ou mais arrays e retorna as diferenças.

array_filter(): Filtra elementos de um array usando uma função callback.

array_map(): Aplica uma função callback a todos os elementos dos arrays dados.

array_slice(): Extrai uma parte de um array.


array_keys(): Retorna todas as chaves ou um subconjunto das chaves de um array.

array_values(): Retorna todos os valores de um array.

array_combine(): Cria um array usando um array para chaves e outro para valores.

Essas funções são fundamentais para realizar operações comuns e avançadas em arrays no PHP,
como filtragem de dados, mapeamento de valores, combinação de arrays, entre outros. Elas são
ferramentas essenciais para qualquer desenvolvedor PHP e serão frequentemente usadas em
diferentes contextos ao longo de sua jornada de programação

Aula 3: Trabalhando com Arrays, Estruturas de Repetição (for, foreach)


As estruturas de repetição são essenciais para iterar sobre arrays e coleções de dados no PHP.
Aqui estão as principais estruturas de repetição utilizadas:

1. For
A estrutura for é usada quando você sabe antecipadamente quantas vezes deseja executar um
bloco de código.
2. Foreach
O foreach é uma forma mais simples de percorrer arrays e é usado principalmente quando o
número de iterações é desconhecido ou o array é associativo.

Para arrays associativos, onde cada elemento é um par chave-valor:

Dicas:
• Use for para loops baseados em contagem.
• Use foreach para percorrer elementos de um array sem se preocupar com as chaves ou o
tamanho do array.
• O foreach é particularmente útil para arrays associativos onde cada valor está associado
a uma chave única.
Estas estruturas permitem manipular dados de forma eficiente, seja para acessar cada elemento
de um array ou para executar um bloco de código um determinado número de vezes com base em
uma condição. Elas são fundamentais para a manipulação de dados em PHP e são frequentemente
utilizadas em conjunto com as funções de array.

Aula 4: Funções em PHP, Definindo e Chamando Funções


Funções são blocos de código que podem ser reutilizados ao longo de um programa. Elas são
definidas para realizar uma tarefa específica e podem ser chamadas em diferentes partes do
código.

Definindo uma Função


Para definir uma função no PHP, você utiliza a palavra-chave function seguida de um nome para
a função, parênteses para os parâmetros (se houver) e chaves para o corpo da função.

Chamando uma Função


Depois de definida, uma função pode ser chamada usando seu nome seguido de parênteses.

Funções com Parâmetros


As funções podem também aceitar parâmetros que alteram seu comportamento baseado nos
valores recebidos.

Dicas:
• Escolha nomes de funções que descrevam claramente o que a função faz para tornar o
código mais legível.
• Parâmetros permitem que as funções sejam mais flexíveis e reutilizáveis.
• A definição da função não causa nenhuma saída ou ação por si só; ela precisa ser chamada
para executar o código que contém.
As funções são uma ferramenta poderosa no PHP, permitindo que você escreva código mais
organizado, reutilizável e fácil de manter.
Aula 4: Funções em PHP, Escopo de Variáveis
O escopo de uma variável refere-se à parte do programa onde a variável é acessível. No PHP, as
variáveis podem ter um dos seguintes escopos:
1. Local
Uma variável declarada dentro de uma função tem um escopo local; ela só pode ser acessada
dentro dessa função.

2. Global
Uma variável declarada fora de uma função tem um escopo global e pode ser acessada em
qualquer lugar do script, exceto dentro de funções, a menos que seja explicitamente referenciada
como global.

3. Static
Uma variável declarada como static dentro de uma função mantém seu valor entre chamadas de
função.
Dicas:
• Variáveis locais são úteis para dados que só devem existir durante uma chamada de
função.
• Variáveis globais são acessíveis em qualquer lugar do script, mas seu uso pode ser
arriscado devido a possíveis conflitos de nomes e dificuldades de rastreamento.
• Variáveis estáticas são úteis para manter estados dentro de funções sem usar variáveis
globais.
Entender o escopo de variáveis é fundamental para gerenciar dados dentro das suas funções e
evitar efeitos colaterais indesejados no seu código PHP.
Aula 4: Funções em PHP, Valores de Retorno
Os valores de retorno são a forma de uma função comunicar um resultado de volta ao ponto onde
foi chamada. No PHP, uma função pode retornar um valor usando a instrução return.
Retornando Valores
Uma função pode terminar sua execução e retornar um valor para o código que a chamou com a
instrução return.

Retornando Diferentes Tipos de Dados


PHP suporta o retorno de todos os tipos de dados, incluindo strings, números, arrays, objetos e
até mesmo outros tipos de recursos.

Retornos Especiais
Se uma função não possui uma instrução return, ou se return é chamado sem um valor, a função
retornará NULL.
Dicas:
• Use a instrução return para passar o resultado de uma função.
• Se precisar retornar mais de um valor, considere usar arrays ou objetos.
• O uso do return também serve para sair antecipadamente de uma função, se necessário.
Valores de retorno são uma parte integral das funções, pois permitem que as funções se
comuniquem e se integrem com outras partes do código, tornando o seu código modular e
reutilizável.

Aula 5: Introdução ao MySQL, Conceitos de Banco de Dados


Bancos de dados são sistemas de armazenamento que permitem guardar, modificar e extrair
informações de maneira organizada. No coração de quase todas as aplicações web está um banco
de dados, e o MySQL é um dos sistemas de gerenciamento de banco de dados relacionais
(SGBDR) mais populares. Vamos explorar alguns conceitos fundamentais:

1. Banco de Dados Relacional


Um banco de dados relacional organiza dados em tabelas, ou "relações", que podem ser ligadas
entre si; as relações entre tabelas são estabelecidas através de chaves estrangeiras.

2. Tabelas
Uma tabela é uma coleção de dados organizados em linhas e colunas. Cada coluna possui um tipo
de dado específico e uma linha é conhecida como um registro.

3. SQL (Structured Query Language)


SQL é a linguagem padrão usada para comunicar-se com bancos de dados relacionais. Através do
SQL, podemos executar consultas para manipular e extrair dados.

4. Chaves Primárias e Estrangeiras


Chaves primárias são identificadores únicos para registros dentro de uma tabela. Chaves
estrangeiras são usadas para associar registros de uma tabela a registros de outra.

5. Indexação
A indexação é uma forma de otimizar o desempenho das consultas em um banco de dados. Índices
são usados para encontrar rapidamente os dados sem ter que procurar em cada linha de uma tabela.

6. Normalização
Normalização é o processo de estruturação de um banco de dados para reduzir a redundância e
melhorar a integridade dos dados.
7. Transações
Uma transação é um conjunto de operações SQL que são executadas como uma única unidade de
trabalho. Transações ajudam a manter a consistência dos dados, mesmo em caso de falhas do
sistema.

8. Procedimentos Armazenados e Triggers


Procedimentos armazenados são coleções de SQL que permitem executar operações complexas
no banco de dados. Triggers são scripts SQL que são automaticamente executados em resposta a
eventos específicos em uma tabela.
Conhecer esses conceitos é essencial para desenvolver aplicações que utilizem bancos de dados
de maneira eficaz e eficiente. No decorrer das aulas, vamos aprofundar em cada um desses tópicos
e aprender como aplicá-los usando o MySQL.

Aula 5: Introdução ao MySQL, Instalação e Configuração do MySQL


Como já instalamos o XAMPP, que inclui o MariaDB (um substituto do MySQL), a instalação do
MySQL propriamente dita não é necessária. MariaDB é altamente compatível com MySQL, o
que significa que você pode usar os comandos MySQL da mesma forma. Vamos focar na
configuração e no uso do MariaDB através do XAMPP para criar e gerenciar nossos bancos de
dados MySQL.

1. Verificação da Instalação
Certifique-se de que o XAMPP está instalado corretamente e que o serviço MySQL (MariaDB)
está rodando. Você pode fazer isso abrindo o painel de controle do XAMPP e verificando se o
status do MySQL está como 'Running'.

2. Acesso ao phpMyAdmin
O phpMyAdmin é uma ferramenta de software livre escrita em PHP destinada a lidar com a
administração do MySQL pela Internet. No XAMPP, ele já vem pré-instalado e é acessível através
do painel de controle:
• Clique no botão 'Admin' ao lado do status do MySQL no painel de controle do XAMPP.
• Isso abrirá o phpMyAdmin em seu navegador padrão.

3. Criando um Banco de Dados


No phpMyAdmin, criar um novo banco de dados é tão simples quanto clicar em 'Databases',
inserir o nome do banco de dados e clicar em 'Create'.

4. Configuração de Usuários
• Na interface do phpMyAdmin, vá para a aba 'User accounts'.
• Aqui você pode adicionar novos usuários e definir privilégios específicos para cada um.

5. Conectando-se ao Banco de Dados via PHP


Para conectar-se ao banco de dados que você criou, você usará o PHP. Em nossas aulas práticas,
abordaremos o uso das funções mysqli_connect ou PDO para estabelecer uma conexão com o
banco de dados.

6. Explorando phpMyAdmin
Familiarize-se com a interface do phpMyAdmin:
• Navegue pelas diferentes abas para ver as opções disponíveis.
• Explore as ferramentas para importar e exportar bancos de dados.
• Use a aba 'SQL' para executar comandos SQL diretamente.

7. Configurações de Segurança
• É importante configurar as definições de segurança do phpMyAdmin e do MariaDB para
evitar acessos não autorizados.
• Altere a senha do usuário 'root' para algo seguro.
• Considere criar um usuário específico para cada banco de dados, com privilégios
limitados apenas ao necessário.

8. Backup e Recuperação
• Aprenda a usar as ferramentas de backup do phpMyAdmin para exportar seus bancos de
dados.
• Saiba como importar esses backups em caso de necessidade.
Durante esta aula prática, vamos seguir esses passos e garantir que você esteja confortável com a
configuração inicial e o uso do phpMyAdmin para gerenciar bancos de dados MySQL. Isso será
fundamental para as próximas etapas do curso, onde você estará trabalhando diretamente com
bancos de dados em suas aplicações PHP.

Aula 5: Introdução ao MySQL, Primeiros comandos SQL


SQL, ou Linguagem de Consulta Estruturada, é a linguagem utilizada para comunicar com bancos
de dados. Aqui vamos aprender os comandos básicos para interagir com o MySQL através do
phpMyAdmin no XAMPP.

1. Comandos Básicos de SQL


SELECT
O comando SELECT é usado para selecionar dados de um banco de dados. A informação é
retornada em uma tabela de resultado chamada de 'result-set'.

INSERT INTO
O comando INSERT INTO é usado para inserir novos registros em uma tabela.

UPDATE
O comando UPDATE é usado para modificar os registros existentes em uma tabela.
DELETE
O comando DELETE é usado para deletar registros existentes em uma tabela.

2. Criando uma Tabela


Para criar uma nova tabela, usamos o comando CREATE TABLE.

3. Inserindo Dados
Depois de criar uma tabela, podemos inserir dados nela com INSERT INTO.

4. Consultando Dados
Para consultar dados, usamos o SELECT. Para selecionar todos os dados de uma tabela, usamos
o asterisco (*):

5. Atualizando Dados
Para atualizar dados em uma tabela, usamos o UPDATE.
6. Deletando Dados
Para deletar dados, usamos o DELETE.

7. WHERE Clause
O WHERE é usado para filtrar registros.

8. LIKE Operator
O operador LIKE é usado em uma cláusula WHERE para procurar um padrão especificado em
uma coluna.

9. AND, OR e NOT Operators


Esses operadores são usados para filtrar registros com base em mais de uma condição.

SELECT * FROM table_name WHERE condition1 AND (condition2 OR


condition3) AND NOT condition4;
10. ORDER BY
O ORDER BY é usado para ordenar o result-set em ordem ascendente ou descendente.

Durante a aula, vamos praticar esses comandos no phpMyAdmin. A capacidade de escrever e


entender comandos SQL é essencial para trabalhar com bancos de dados e será uma habilidade
valiosa à medida que avançamos no curso e começamos a integrar o PHP com o MySQL.

Aula 6: Integrando PHP com MySQL, Conectando ao banco de dados com PHP
Conectar o PHP ao MySQL é uma habilidade essencial para criar aplicações dinâmicas. O PHP
oferece funções integradas para estabelecer esta conexão.

1. A API MySQLi e PDO


Existem duas maneiras principais de se conectar ao MySQL com PHP: MySQLi (MySQL
improved) e PDO (PHP Data Objects). MySQLi é específico para bancos de dados MySQL,
enquanto o PDO pode se conectar a vários bancos de dados diferentes.

2. Conectando com MySQLi


Para se conectar a um banco de dados MySQL usando MySQLi, você precisa criar um novo objeto
ou função MySQLi.

Procedural

Orientado a Objetos

3. Conectando com PDO


O PDO permite conexões mais seguras e uma melhor manipulação de erros. Para se conectar
usando PDO:
4. Fechando a Conexão
É uma boa prática fechar sua conexão após a execução das operações desejadas.

MySQLi

PDO

Prática
Na prática, vamos criar scripts PHP para conectar ao banco de dados MySQL que configuramos
anteriormente no XAMPP. Vamos testar a conexão e garantir que possamos se conectar e
desconectar com sucesso, preparando o caminho para executar consultas SQL e manipular os
dados do banco de dados.
Ao final desta aula, você terá uma compreensão firme de como conectar seu código PHP a um
banco de dados MySQL, uma fundação crítica para o desenvolvimento de aplicações web.

Aula 6: Integrando PHP com MySQL, tópico 2: Executando consultas SQL via PHP.
2. Executando consultas SQL via PHP
Depois de estabelecer uma conexão com o MySQL usando o PDO, você pode executar
consultas SQL para interagir com o banco de dados. Aqui está o processo passo a passo:
1. Preparar a consulta SQL: Preparar uma consulta SQL significa que o banco de
dados vai analisar, compilar e otimizar o plano para a consulta, mas não a executa
imediatamente.

Vincular parâmetros: Se a sua consulta SQL incluir parâmetros, como em instruções INSERT,
UPDATE ou SELECT com condições, você deve vincular cada parâmetro à consulta preparada
para evitar a injeção de SQL.

Executar a consulta: Após preparar sua consulta e vincular todos os parâmetros necessários,
execute a consulta.

Buscar os resultados: Depois de executar a consulta, você pode buscar os resultados. Se for uma
consulta SELECT, você pode buscar um único resultado, um conjunto de resultados ou todos
eles.

Tratar erros: Sempre trate os erros capturando exceções que podem ocorrer durante a preparação
ou execução da consulta.
Lembre-se de que cada consulta deve ser tratada com cuidado para manter a segurança do banco
de dados e a integridade dos dados. A utilização de consultas preparadas com vinculação de
parâmetros é uma prática recomendada para prevenir a injeção de SQL e outros tipos de ataques.

Aula 6: Integrando PHP com MySQL, tópico 3: Tratamento de erros.


3. Tratamento de erros
Tratar erros de forma eficaz é crucial ao executar consultas SQL no PHP. Isso não apenas ajuda a
manter a aplicação segura, mas também facilita a depuração e a manutenção do código. Vamos
explorar como você pode lidar com os erros ao trabalhar com o banco de dados.
1. Usando Exceções do PDO: Quando ocorre um erro no PDO, ele pode lançar uma
exceção que deve ser capturada para evitar a interrupção do script e apresentar
informações sensíveis ao usuário.
Configurando o PDO para lançar exceções: Você pode configurar o PDO para automaticamente
lançar exceções sempre que ocorrer um erro ao estabelecer a conexão ou ao executar consultas.

Verificando erros com métodos PDO: Além das exceções, você pode verificar se ocorreram
erros usando métodos específicos do PDO, como errorInfo() ou errorCode().

Registrando erros: Em um ambiente de produção, é importante registrar os erros em vez de


exibi-los para o usuário. Você pode escrever os erros em um arquivo de log para análise posterior.

Desligando a conexão: Em caso de erro, é uma boa prática desligar a conexão com o banco de
dados.
Lembre-se de que um bom tratamento de erros não revela detalhes específicos do erro ao usuário
final, mas fornece informações suficientes para que a equipe de desenvolvimento possa investigar
o problema. Ao mesmo tempo, mantém a aplicação funcionando o mais suavemente possível,
mesmo quando ocorrem falhas.

Aula 7: CRUD Básico


1. Criar (INSERT)
Para inserir dados em uma tabela no banco de dados MySQL utilizando PHP e PDO, você pode
seguir os passos abaixo:

Neste código, substitua 'database', 'username' e 'password' pelos valores apropriados para o
seu banco de dados. tabela deve ser substituída pelo nome da tabela onde você deseja inserir os
dados, e coluna1, coluna2, valor1, e valor2 pelos nomes das colunas e pelos valores que você
deseja inserir.

Aula 7: CRUD Básico


2. Ler (SELECT)
Para ler dados de uma tabela no banco de dados usando PHP e PDO, você pode utilizar o seguinte
exemplo de código:

Lembre-se de substituir database, username, e password com suas informações de acesso ao


banco de dados e ajustar tabela, coluna1 e coluna2 para refletir a estrutura da sua base de dados.
Este script tentará ler e exibir as informações das colunas especificadas de todas as entradas da
tabela.

Aula 7: CRUD Básico


3. Atualizar (UPDATE)
Para atualizar registros em uma tabela utilizando PHP e PDO, segue um exemplo de como
estruturar o código:
Neste exemplo, $valor1 e $valor2 são os novos valores que você deseja definir para as colunas
coluna1 e coluna2, respectivamente, do registro com o id especificado. Lembre-se de substituir
database, username, e password com suas informações reais de acesso ao banco de dados e de
ajustar tabela, coluna1, coluna2, e id conforme a sua base de dados. O script executará a
atualização e retornará uma mensagem indicando quantos registros foram atualizados.

Aula 7: CRUD Básico


Deletar (DELETE)
Para excluir dados de uma tabela no banco de dados, utilizamos a instrução DELETE. É crucial
ser cauteloso ao utilizar essa operação, pois ela remove dados de forma permanente.
Aqui está um exemplo de como você pode usar a instrução DELETE com PHP e MySQL:
Neste código:
1. Criamos uma conexão com o banco de dados usando PDO.
2. Definimos a instrução SQL DELETE com um placeholder para o ID que desejamos
excluir.
3. Preparamos a instrução para execução e vinculamos o parâmetro ID ao valor específico.
4. Executamos a instrução e, se bem-sucedida, ela retornará a quantidade de registros
afetados.
5. Por fim, tratamos possíveis exceções e encerramos a conexão.
Lembre-se de que o uso do método bindParam ajuda a prevenir injeções de SQL, tornando sua
aplicação mais segura.
Isso conclui a seção sobre como deletar registros no banco de dados. Se tiver alguma dúvida ou
se quiser praticar com exemplos adicionais, estou à disposição para ajudar.

Aula 8: Formulários e PHP


Métodos GET e POST
Formulários são uma parte essencial da interação do usuário com aplicações web. No PHP, os
formulários são geralmente processados usando dois métodos: GET e POST.
• GET: Utilizado para solicitar dados de um recurso especificado. Parâmetros são enviados
na URL, visíveis para todos, e têm limites de comprimento. É menos seguro e não é ideal
para enviar informações sensíveis.
• POST: Utilizado para enviar dados para serem processados para um recurso especificado.
Os parâmetros são enviados no corpo da solicitação, não são visíveis na URL, e podem
enviar dados em maior quantidade. É mais seguro e ideal para informações sensíveis
como senhas.
Aqui está um exemplo de um formulário HTML que utiliza o método POST:

Quando o usuário clica em "Enviar", os dados do formulário são enviados para o arquivo
"processa_formulario.php" onde podem ser acessados via a superglobal $_POST no PHP.

Validação de formulários com PHP


A validação de formulários é crucial para proteger sua aplicação de dados incorretos ou
maliciosos. No PHP, a validação é realizada antes de processar os dados enviados.
Exemplo de validação simples para o nome:
Enviando dados para o MySQL
Após validar os dados, você pode inseri-los em um banco de dados MySQL. Utilizando a extensão
PDO, por exemplo, você pode preparar e executar instruções SQL de forma segura.
Este exemplo pressupõe que você já tenha uma tabela chamada usuarios com as colunas nome e
email.
Próximo passo da aula 8 seria a Validação de formulários com PHP.

Aula 8: Validação de Formulários com PHP


Para garantir que os dados inseridos em um formulário sejam corretos antes de enviar para o
banco de dados, é importante realizar a validação no lado do servidor com PHP. Veja um exemplo
de como validar um campo de nome e email:
Certifique-se de adaptar a função de limpeza e as expressões regulares às suas necessidades
específicas. A validação é uma parte crucial do desenvolvimento de aplicações seguras e
confiáveis.

Aula 9: Sessões e Cookies


Gerenciando sessões em PHP
Para gerenciar sessões em PHP, você precisa entender como iniciar uma sessão, armazenar
informações nela e como acessar essas informações posteriormente. Aqui está um exemplo básico
de como você pode gerenciar sessões em PHP:

Este código começa iniciando uma sessão com session_start(). Depois, ele verifica se a variável
de sessão contador existe. Se existir, ele incrementa o contador; se não, ele define a sessão
contador para 1. A cada vez que a página é carregada, o contador é incrementado, e isso é
retornado ao usuário. O session_destroy() pode ser usado para destruir a sessão quando
necessário, como em uma funcionalidade de logout.

Aula 9: Sessões e Cookies


Utilizando cookies
Cookies são pequenos arquivos de dados que são armazenados no navegador do usuário pelo site.
Eles são usados para manter o estado da aplicação ou para rastrear as preferências do usuário.
Aqui está como você pode definir e acessar cookies em PHP:
Este código começa definindo um cookie chamado usuario com o valor nomeDoUsuario que
expira em 30 dias. O caminho / indica que o cookie está disponível em todo o site. O script então
verifica se o cookie usuario está definido e exibe uma mensagem de boas-vindas apropriada com
base nisso. Para apagar um cookie, você pode chamar a função setcookie() com um tempo de
expiração no passado.

Aula 9: Sessões e Cookies


Conceitos de autenticação
Autenticação é o processo de verificar a identidade de um usuário. Em PHP, isso geralmente é
feito usando sessões ou cookies para manter o estado entre as solicitações.
Aqui estão os conceitos básicos de autenticação:
1. Login:
• O usuário fornece um nome de usuário e senha.
• O sistema verifica as credenciais contra um banco de dados ou serviço de
diretório.
• Se estiverem corretas, o sistema cria uma sessão para o usuário.
2. Sessões:
• Uma sessão é uma maneira de armazenar informações para serem usadas em
várias páginas.
• Por padrão, as sessões são mantidas no servidor.
• PHP fornece a superglobal $_SESSION para acessar e armazenar dados da
sessão.
3. Cookies:
• Os cookies podem armazenar tokens de autenticação ou IDs de sessão.
• Eles são enviados em cada solicitação para que o servidor possa validar o usuário.
4. Logout:
• Quando o usuário decide sair, a sessão é destruída, e o cookie de autenticação é
removido.
5. Segurança:
• As credenciais nunca devem ser armazenadas em texto simples. Sempre use
métodos de hashing seguros, como bcrypt.
• Use HTTPS para evitar que as credenciais sejam interceptadas durante a
transmissão.
• Implemente medidas para proteger contra ataques como CSRF e XSS.
Exemplo básico de um script de login em PHP:
este exemplo, quando o usuário faz login com sucesso, as informações da sessão são
estabelecidas. Se o usuário optar por sair, a sessão é destruída, e o cookie de sessão é removido,
efetivamente deslogando o usuário do sistema.
Aula 10: Projeto Final - Aplicação Básica
Planejamento da aplicação
Objetivo: Desenvolver uma aplicação web simples que utilize um banco de dados MySQL e um
front-end em PHP para gerenciar uma lista de tarefas.
Requisitos:
1. Interface para adicionar novas tarefas.
2. Capacidade de marcar tarefas como concluídas.
3. Opção para remover tarefas da lista.
Etapas do Planejamento:
• Definição de Escopo: A aplicação será uma lista de tarefas com as funcionalidades de
adicionar, listar, marcar como concluída e excluir tarefas.
• Modelagem do Banco de Dados: Criação de uma tabela tarefas com as colunas id,
titulo, descricao, status e data_criacao.
• Desenvolvimento do Back-end: Implementação das operações CRUD no PHP
utilizando PDO para interagir com o banco de dados MySQL.
• Desenvolvimento do Front-end: Criação de formulários HTML para interação do
usuário, com métodos GET e POST para enviar e receber dados do back-end.
• Definição das Tecnologias: Utilização do XAMPP como ambiente de desenvolvimento,
que já inclui o servidor Apache e o MySQL.
Planejamento Detalhado:
1. Configuração do Ambiente: Verificação e configuração do XAMPP para garantir que o
Apache e o MySQL estão funcionando corretamente.
2. Criação do Banco de Dados: Uso dos comandos SQL para criar o banco de dados e a
tabela tarefas.
3. Implementação do Back-end:
• Conexão com o banco de dados.
• Funções para adicionar, ler, atualizar e excluir tarefas.
4. Implementação do Front-end:
• Interface principal com lista de tarefas e formulário de adição.
• Botões ou links para marcar como concluída e excluir.
5. Testes Iniciais: Testar todas as funcionalidades individualmente para garantir que estão
funcionando conforme o esperado.
6. Refinamento: Ajuste do layout, melhoria na validação dos formulários e otimização das
consultas ao banco de dados.
7. Testes Finais: Realização de testes integrados para verificar o fluxo completo da
aplicação.
8. Documentação: Elaboração de uma documentação básica do código e das
funcionalidades da aplicação.
Próximas Etapas: Após o planejamento, começaremos o desenvolvimento da aplicação,
implementando cada um dos requisitos e funcionalidades planejadas.
Aula 10: Projeto Final - Aplicação Básica
Desenvolvimento
Estrutura do Projeto:
1. index.php: Página principal que exibe a lista de tarefas e contém o formulário de adição
de tarefas.
2. add_task.php: Arquivo que processa a adição de novas tarefas ao banco de dados.
3. delete_task.php: Arquivo responsável por deletar uma tarefa específica do banco de
dados.
4. complete_task.php: Arquivo que atualiza o status de uma tarefa para concluída.
Passos para o Desenvolvimento:
1. Configuração do Projeto:
• Criar uma nova pasta no diretório htdocs do XAMPP para o projeto.
• Iniciar os serviços Apache e MySQL pelo painel de controle do XAMPP.
2. Criação da Estrutura de Arquivos:
• Criar os arquivos PHP mencionados na estrutura do projeto.
3. Conexão com o Banco de Dados:
• Criar um arquivo config.php para armazenar as informações de conexão com o
banco de dados.

1. Implementação das Funcionalidades:


• Em index.php, escrever o código HTML para a interface e o PHP para listar as
tarefas.
• Em add_task.php, implementar a lógica para inserir novas tarefas no banco de
dados.
• Em delete_task.php, implementar a lógica para remover tarefas.
• Em complete_task.php, implementar a lógica para marcar tarefas como
concluídas.
2. Desenvolvimento do Front-end:
• Utilizar HTML e CSS para criar uma interface amigável.
• Adicionar JavaScript se necessário para melhorar a interatividade.
3. Teste das Funcionalidades:
• Testar cada arquivo PHP individualmente para garantir que estão funcionando
corretamente.
• Inserir, atualizar e excluir tarefas para validar todas as operações do CRUD.
4. Debugging:
• Utilizar var_dump() e print_r() para ajudar na detecção e correção de erros.
• Verificar os logs de erro do Apache se encontrar problemas ao acessar as páginas.
5. Refatoração do Código:
• Revisar o código para melhorar a legibilidade e a manutenção.
• Separar a lógica de negócios da apresentação, utilizando uma abordagem mais
modular.
Importante:
• Manter o código organizado e bem comentado.
• Garantir que todos os dados inseridos no banco de dados sejam sanitizados para evitar
SQL Injection.
• Assegurar que o formulário de adição de tarefas tenha validação no lado do servidor para
prevenir a inserção de dados inválidos.
Próximo Passo: Após a conclusão do desenvolvimento e dos testes iniciais de cada
funcionalidade, o próximo passo será realizar testes mais abrangentes e corrigir quaisquer bugs
que possam surgir.
Aula 10: Projeto Final - Aplicação Básica
Testes e Correção de Bugs
Testes:
1. Testes de Usabilidade:
• Garantir que a interface seja intuitiva e fácil de usar.
• Solicitar feedback de usuários para identificar pontos de dificuldade.
2. Testes de Funcionalidades:
• Verificar se todas as funcionalidades estão operando como esperado.
• Inserir, editar, marcar como concluída e deletar tarefas para testar o CRUD
completo.
3. Testes de Segurança:
• Testar a aplicação contra SQL injection.
• Garantir que os dados do usuário estão sendo sanitizados antes de serem
processados.
4. Testes de Compatibilidade:
• Assegurar que a aplicação funciona corretamente em diferentes navegadores.
• Testar a responsividade em dispositivos móveis.
5. Testes de Performance:
• Checar o tempo de carregamento das páginas.
• Otimizar as consultas ao banco de dados para melhor desempenho.
Correção de Bugs:
1. Documentação de Bugs:
• Registrar todos os bugs encontrados durante os testes.
• Priorizar os bugs baseando-se no impacto na funcionalidade e na experiência do
usuário.
2. Resolução de Bugs:
• Corrigir bugs de maior prioridade primeiro.
• Testar as correções em vários ambientes para garantir que o bug foi solucionado.
3. Revisão de Código:
• Revisar o código para identificar e corrigir possíveis causas de bugs.
• Refatorar o código se necessário para prevenir futuros erros.
4. Testes Regressivos:
• Após correções, realizar testes para assegurar que novos bugs não foram
introduzidos.
• Validar que funcionalidades previamente testadas continuam funcionando como
esperado.
5. Atualizações Contínuas:
• Manter a aplicação atualizada com as últimas versões das tecnologias utilizadas.
• Implementar melhorias baseadas no feedback dos usuários.
Ferramentas de Teste:
• PHPUnit: para testes automatizados no PHP.
• Selenium: para testes automatizados em navegadores.
• XDebug: para debugging e profiling do código PHP.
Práticas Recomendadas:
• Implementar um sistema de log para registrar erros e comportamentos inesperados.
• Utilizar controle de versão, como Git, para gerenciar as mudanças no código.
• Realizar backups regulares do banco de dados durante a fase de testes.
Conclusão: Os testes e a correção de bugs são etapas críticas no desenvolvimento de qualquer
aplicação. Eles garantem a qualidade, a segurança e a robustez do software. Após uma cuidadosa
verificação e correção de problemas, a aplicação estará pronta para ser lançada para os usuários
finais.

Conclusão Geral do Curso e Perspectivas Futuras


Resumo do Curso: Ao longo deste curso, exploramos os fundamentos do desenvolvimento web
com PHP, uma linguagem de programação poderosa e amplamente utilizada. Começamos com os
básicos da sintaxe PHP, passamos pelo manuseio de dados com formulários, integração com
MySQL para operações CRUD, e terminamos desenvolvendo uma aplicação completa. Cobrimos
conceitos essenciais como tratamento de erros, validação de dados, sessões, cookies e
autenticação.
Expectativas para os Estudantes: Espera-se que, após a conclusão deste curso, os estudantes
estejam equipados com um sólido entendimento de PHP e suas aplicações no desenvolvimento
web. Vocês devem ser capazes de construir aplicações web dinâmicas, seguras e eficientes, com
a capacidade de manipular dados e gerenciar estados de usuário com confiança.
Palavras de Incentivo: Para os novos programadores que estão apenas começando - a jornada
pode parecer desafiadora, mas cada linha de código que você escreve constrói a fundação para
um futuro brilhante na tecnologia. Lembrem-se de que mesmo os mais experientes
desenvolvedores começaram do zero e que cada erro é uma nova oportunidade de aprendizado.
O mundo da programação está em constante evolução, e agora vocês têm as ferramentas para
fazer parte dessa transformação.
Continuem Construindo e Aprendendo: A prática é um componente chave para o
aprimoramento de suas habilidades. Não tenham medo de experimentar novos projetos, colaborar
com outros, e se envolverem com a comunidade de desenvolvimento. Cada aplicação que vocês
criam não é apenas um produto de seu conhecimento, mas também um passo adiante em sua
jornada de aprendizado.
Mantenham-se Curiosos e Adaptáveis: O campo da tecnologia é um ambiente de aprendizado
contínuo. Mantenham-se atualizados com as últimas tendências e tecnologias emergentes. A
adaptabilidade é uma das qualidades mais valiosas em um programador, permitindo-lhes navegar
e prosperar em um mercado em constante mudança.
Comunidade e Colaboração: Participem de fóruns, contribuam com projetos de código aberto,
e não hesitem em pedir ajuda quando precisarem. A comunidade de desenvolvimento é
incrivelmente colaborativa e de suporte. O compartilhamento de conhecimento é o que impulsiona
nossa indústria para frente.
Palavras Finais: Como novos programadores, vocês têm o potencial de criar coisas incríveis.
Usem seu conhecimento com responsabilidade, sejam criativos e nunca parem de codificar. O
mundo precisa de inovadores e solucionadores de problemas - e vocês estão bem equipados para
serem exatamente isso.
Parabéns por completarem este curso e boa sorte em suas futuras aventuras de codificação!

Você também pode gostar