Aprenda a excluir registros do MySQL utilizando PHP

Veja como remover registros de uma tabela MySQL utilizando PHP com MySQLi e PDO de forma segura.

Como excluir registros do MySQL usando PHP?

A remoção de registros do banco de dados é uma operação comum, mas requer cuidados para evitar a exclusão de dados de forma irreversível. Podemos excluir registros utilizando MySQLi e PDO.

Excluindo registros com MySQLi (Procedural)

Podemos utilizar MySQLi para deletar registros de forma procedural:

<?php
// Conectar ao banco de dados
$conexao = mysqli_connect("localhost", "usuario", "senha", "meu_banco");
if (!$conexao) {
    die("Falha na conexão: " . mysqli_connect_error());
}

// Deletar um registro específico
$sql = "DELETE FROM usuarios WHERE id=1";
if (mysqli_query($conexao, $sql)) {
    echo "Registro excluído com sucesso!";
} else {
    echo "Erro ao excluir: " . mysqli_error($conexao);
}

// Fechar conexão
mysqli_close($conexao);
?>

Esse código remove o registro cujo id=1.

Excluindo registros com MySQLi (Orientado a Objetos)

<?php
$conexao = new mysqli("localhost", "usuario", "senha", "meu_banco");
if ($conexao->connect_error) {
    die("Erro na conexão: " . $conexao->connect_error);
}

$sql = "DELETE FROM usuarios WHERE id=2";
if ($conexao->query($sql) === TRUE) {
    echo "Registro excluído com sucesso!";
} else {
    echo "Erro ao excluir: " . $conexao->error;
}

$conexao->close();
?>

Aqui, utilizamos a sintaxe orientada a objetos para executar a consulta.

Excluindo registros com PDO (Mais Seguro)

O PDO permite consultas preparadas, prevenindo SQL Injection:

<?php
try {
    $conexao = new PDO("mysql:host=localhost;dbname=meu_banco", "usuario", "senha");
    $conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // Query preparada para deletar um registro
    $sql = "DELETE FROM usuarios WHERE id = :id";
    $stmt = $conexao->prepare($sql);

    // Definir o valor do parâmetro
    $stmt->bindParam(':id', $id);

    $id = 3;
    $stmt->execute();

    echo "Registro excluído com sucesso!";
} catch (PDOException $e) {
    echo "Erro ao excluir: " . $e->getMessage();
}
?>

Aqui, utilizamos prepared statements para evitar SQL Injection.

A exclusão de registros no MySQL via PHP deve ser realizada com cuidado para evitar remoções acidentais. O uso de cláusulas WHERE específicas e prepared statements ajuda a tornar essa operação mais segura. Em sistemas críticos, pode ser mais interessante marcar registros como inativos em vez de excluí-los definitivamente.

Algumas aplicações:

  • Remoção de usuários inativos em sistemas de cadastro
  • Exclusão de produtos obsoletos em lojas virtuais
  • Gerenciamento de registros em sistemas administrativos
  • Eliminação de comentários ou postagens indesejadas em fóruns

Dicas para quem está começando

  • Sempre utilize prepared statements para evitar SQL Injection.
  • Evite usar DELETE sem um WHERE, pois isso excluirá todos os registros.
  • Faça backup do banco antes de executar operações de exclusão.
  • Em vez de excluir registros, considere marcar como inativos.
  • Use LIMIT para restringir a exclusão a um número específico de registros.

Contribuições de Daniel Moreira

Compartilhe este tutorial: Como excluir registros do MySQL usando PHP?

Compartilhe este tutorial

Continue aprendendo:

Como atualizar registros do MySQL com PHP?

Veja como modificar dados em uma tabela MySQL utilizando PHP com MySQLi e PDO de forma segura.

Tutorial anterior

Como usar PDO para conectar o PHP ao MySQL?

Veja como estabelecer uma conexão segura entre PHP e MySQL utilizando PDO, garantindo flexibilidade e segurança.

Próximo tutorial