Como atualizar registros do MySQL com PHP?
A atualização de dados no MySQL pode ser realizada de maneira segura utilizando MySQLi ou PDO. Para isso, utilizamos a instrução SQL UPDATE
.
Atualizando registros com MySQLi (Procedural)
Podemos modificar dados diretamente com MySQLi 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());
}
// Atualizando um registro
$sql = "UPDATE usuarios SET nome='Carlos Almeida' WHERE id=1";
if (mysqli_query($conexao, $sql)) {
echo "Registro atualizado com sucesso!";
} else {
echo "Erro ao atualizar: " . mysqli_error($conexao);
}
// Fechar conexão
mysqli_close($conexao);
?>
Esse código altera o nome do usuário com id=1
.
Atualizando 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 = "UPDATE usuarios SET nome='Maria Souza' WHERE id=2";
if ($conexao->query($sql) === TRUE) {
echo "Registro atualizado com sucesso!";
} else {
echo "Erro ao atualizar: " . $conexao->error;
}
$conexao->close();
?>
Aqui, usamos a sintaxe orientada a objetos para executar a consulta.
Atualizando registros com PDO (Mais Seguro)
Usar prepared statements no PDO evita SQL Injection:
<?php
try {
$conexao = new PDO("mysql:host=localhost;dbname=meu_banco", "usuario", "senha");
$conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Atualizar dados de forma segura
$sql = "UPDATE usuarios SET nome = :nome WHERE id = :id";
$stmt = $conexao->prepare($sql);
// Definir valores
$stmt->bindParam(':nome', $novoNome);
$stmt->bindParam(':id', $id);
$novoNome = "Fernando Oliveira";
$id = 3;
$stmt->execute();
echo "Registro atualizado com sucesso!";
} catch (PDOException $e) {
echo "Erro ao atualizar: " . $e->getMessage();
}
?>
Aqui, placeholders nomeados garantem que os valores sejam tratados como dados e não como comandos SQL.
Por que utilizar PDO para atualizar registros no MySQL com PHP?
Atualizar registros no MySQL via PHP é uma prática comum em sistemas dinâmicos, como perfis de usuários e sistemas de gerenciamento de conteúdo. O uso de prepared statements com PDO oferece maior segurança contra SQL Injection, tornando-se a melhor escolha para aplicações que lidam com dados sensíveis.
Algumas aplicações:
- Atualização de informações de perfis de usuários
- Modificação de preços de produtos em lojas virtuais
- Alteração de status de pedidos em sistemas de e-commerce
- Gerenciamento dinâmico de conteúdos em sites e blogs
Dicas para quem está começando
- Sempre utilize prepared statements para evitar SQL Injection.
- Certifique-se de que a cláusula
WHERE
está correta para evitar atualizações indesejadas. - Teste suas queries em um ambiente seguro antes de aplicá-las em produção.
- Verifique se a atualização realmente afetou registros utilizando
rowCount()
no PDO. - Evite realizar atualizações em massa sem critério, pois isso pode impactar o desempenho do banco.
Contribuições de Rafael Nogueira