Aprenda a inserir dados no MySQL utilizando PHP

Veja como inserir registros em uma tabela MySQL via PHP utilizando MySQLi e PDO de maneira segura.

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.

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

Compartilhe este tutorial: Como inserir dados no MySQL com PHP?

Compartilhe este tutorial

Continue aprendendo:

Como criar uma tabela MySQL via PHP?

Veja como criar uma tabela MySQL via PHP utilizando as extensões MySQLi e PDO para manipulação de dados estruturados.

Tutorial anterior

Como buscar dados do MySQL e exibi-los em uma página PHP?

Veja como buscar registros do MySQL e exibi-los dinamicamente em uma página PHP utilizando MySQLi e PDO.

Próximo tutorial