0Pricing
PHP Academy · Aula

Instruções preparadas

Proteja suas consultas ao banco de dados com instruções preparadas

Instruções preparadas é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 5 de 6. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 6 aulas no total.

Visão geral das instruções preparadas

Instruções preparadas

Boas-vindas à próxima lição! Nesta lição, você aprenderá sobre instruções preparadas e como elas tornam suas interações com o banco de dados mais seguras e eficientes. Vamos começar!

Instruções preparadas — ilustração 1

O que são instruções preparadas?

O que são instruções preparadas?

Instruções preparadas são um recurso dos sistemas de gerenciamento de bancos de dados que permite executar consultas SQL com segurança e eficiência. Elas separam o código SQL dos dados, evitando ataques de injeção de SQL.

Exemplo: Usar marcadores de posição (:name, :email) em vez de inserir diretamente a entrada do usuário na consulta.

Por que usar instruções preparadas?

Por que usar instruções preparadas?

As instruções preparadas oferecem vários benefícios:

  • Segurança: Evitam injeções de SQL ao tratar as entradas do usuário.
  • Eficiência: Permitem reutilizar a mesma instrução com dados diferentes, reduzindo o tempo de análise da consulta.
  • Facilidade de manutenção: Tornam seu código mais fácil de ler e depurar.

Ponto principal: Sempre use instruções preparadas ao interagir com dados fornecidos pelo usuário.

Criando uma instrução preparada

Criando uma instrução preparada

Para criar uma instrução preparada, siga estas etapas:

  1. Escreva a consulta SQL com marcadores de posição.
  2. Prepare a consulta usando a conexão com o banco de dados.
  3. Associe valores aos marcadores de posição.
  4. Execute a instrução.

Exemplo:

Dica: Use matrizes associativas para associar valores com facilidade.

<?php
  $sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
  $stmt = $pdo->prepare($sql);
  $stmt->execute(["name" => "Alice", "email" => "alice@mail.com"]);
?>

Associando valores

Associando valores

Use os métodos bindParam() ou bindValue() para associar valores aos marcadores de posição. Exemplo:

<?php
  $stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
  $stmt->bindParam(":name", $name);
  $stmt->bindParam(":email", $email);

  $name = "Bob";
  $email = "bob@mail.com";
  $stmt->execute();
?>

Usando instruções preparadas para consultas <code>SELECT</code>

Usando instruções preparadas para consultas SELECT

As instruções preparadas funcionam com todos os tipos de consultas SQL, incluindo SELECT. Exemplo:

Dica: Use fetchAll() para recuperar várias linhas.

<?php
  $sql = "SELECT * FROM users WHERE name = :name";
  $stmt = $pdo->prepare($sql);
  $stmt->execute(["name" => "Alice"]);
  $result = $stmt->fetch(PDO::FETCH_ASSOC);

  echo "Name: " . $result["name"] . ", Email: " . $result["email"];
?>

Reutilizando instruções preparadas

Reutilizando instruções preparadas

As instruções preparadas podem ser reutilizadas com valores diferentes, melhorando a eficiência. Exemplo:

<?php
  $stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");

  $users = [
    ["name" => "Charlie", "email" => "charlie@mail.com"],
    ["name" => "Dave", "email" => "dave@mail.com"]
  ];

  foreach ($users as $user) {
    $stmt->execute($user);
  }

  echo "Multiple records inserted successfully!";
?>

Evitando injeções de SQL

Evitando injeções de SQL

As instruções preparadas tratam caracteres especiais nas entradas do usuário, evitando ataques de injeção de SQL. Exemplo:

<?php
  $sql = "SELECT * FROM users WHERE email = :email";
  $stmt = $pdo->prepare($sql);
  $stmt->execute(["email" => "' OR 1=1; --"]);
  $result = $stmt->fetch();

  if ($result) {
    echo "User found.";
  } else {
    echo "No user found.";
  }
?>

Muito bem!

Muito bem!

Parabéns! Você aprendeu a usar instruções preparadas em PHP para proteger suas interações com o banco de dados. Na próxima lição, exploraremos técnicas avançadas de consulta com junções e agregações. Vamos continuar programando!

Instruções preparadas — ilustração 10

Perguntas Frequentes

A aula “Instruções preparadas” é grátis?

Sim — o texto completo de “Instruções preparadas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 6 aulas no total.

O que vou aprender em “Instruções preparadas”?

Proteja suas consultas ao banco de dados com instruções preparadas Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar PHP Academy?

Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 5 de 6.

Quanto tempo leva a aula “Instruções preparadas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de PHP Academy?

Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Introdução a bancos de dados
  2. Conectando-se a um banco de dados MySQL
  3. Gerenciando tabelas
  4. Realizando operações CRUD
  5. Instruções preparadas
  6. Trabalhando com PDO
← Voltar para PHP Academy