Como inserir dados no MySQL com PHP?
A inserção de dados no MySQL via PHP pode ser feita utilizando MySQLi ou PDO. Ambas as abordagens permitem enviar informações do sistema para o banco de forma eficiente.
Inserindo dados com MySQLi (Procedural)
O método procedural com MySQLi é o mais simples para adicionar registros a uma tabela:
<?php
// Conectar ao banco de dados
$conexao = mysqli_connect("localhost", "usuario", "senha", "meu_banco");
// Verificar erro na conexão
if (!$conexao) {
die("Falha na conexão: " . mysqli_connect_error());
}
// Comando SQL para inserir dados
$sql = "INSERT INTO usuarios (nome, email, senha) VALUES ('Carlos Silva', 'carlos@email.com', '123456')";
if (mysqli_query($conexao, $sql)) {
echo "Registro inserido com sucesso!";
} else {
echo "Erro ao inserir: " . mysqli_error($conexao);
}
// Fechar conexão
mysqli_close($conexao);
?>
Neste código, os dados do usuário são inseridos na tabela usuarios
.
Inserindo dados 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 = "INSERT INTO usuarios (nome, email, senha) VALUES ('Maria Souza', 'maria@email.com', 'abcdef')";
if ($conexao->query($sql) === TRUE) {
echo "Registro inserido com sucesso!";
} else {
echo "Erro ao inserir: " . $conexao->error;
}
$conexao->close();
?>
Essa abordagem usa um objeto mysqli
para executar a query.
Inserindo dados com PDO (Mais Seguro)
O PDO permite a inserção segura com prepared statements, prevenindo ataques 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 evitar SQL Injection
$sql = "INSERT INTO usuarios (nome, email, senha) VALUES (:nome, :email, :senha)";
$stmt = $conexao->prepare($sql);
// Definir valores
$stmt->bindParam(':nome', $nome);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':senha', $senha);
$nome = "João Pereira";
$email = "joao@email.com";
$senha = password_hash("senha123", PASSWORD_DEFAULT);
$stmt->execute();
echo "Registro inserido com sucesso!";
} catch (PDOException $e) {
echo "Erro ao inserir: " . $e->getMessage();
}
?>
Aqui, usamos placeholders nomeados para garantir que os valores sejam tratados como dados e não como comandos SQL.
Por que usar PDO para inserir dados no MySQL com PHP?
A inserção de dados em um banco MySQL via PHP pode ser feita de diferentes maneiras. Embora o MySQLi seja mais simples, o PDO é altamente recomendado por oferecer prepared statements, prevenindo SQL Injection. Além disso, ele permite maior flexibilidade, funcionando com múltiplos bancos de dados. Aplicar essas boas práticas evita vulnerabilidades e melhora a segurança do sistema.
Algumas aplicações:
- Armazenamento de informações de usuários em sistemas web
- Registro de pedidos e compras em e-commerces
- Cadastro de clientes em sistemas de gestão
- Inserção de dados coletados por formulários em bancos de dados
Dicas para quem está começando
- Sempre valide e sanitize os dados antes de inseri-los no banco.
- Utilize
password_hash()
ao armazenar senhas. - Evite inserir dados diretamente na query SQL, prefira prepared statements.
- Use
try/catch
ao trabalhar com PDO para lidar com erros corretamente. - Feche a conexão após a inserção para liberar recursos.
Contribuições de Rafael Nogueira