Aprenda a importar um arquivo CSV para o MySQL com PHP

Veja como importar dados de um arquivo CSV para uma tabela MySQL utilizando PHP de forma eficiente.

Como importar um arquivo CSV para o MySQL usando PHP?

Importar dados de um arquivo CSV para o MySQL usando PHP é uma técnica útil para migrar informações de outros sistemas, carregar bases de clientes ou atualizar registros de forma massiva.

Estrutura da Tabela no MySQL

Antes de importar os dados, criamos uma tabela adequada para armazenar as informações:

CREATE TABLE usuarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL
);

Criando o Formulário de Upload

Para permitir o envio do arquivo CSV, criamos um formulário HTML:

<form action="importar.php" method="post" enctype="multipart/form-data">
    <input type="file" name="arquivo_csv" accept=".csv" required>
    <button type="submit">Importar CSV</button>
</form>

Criando o Script de Importação com PHP

Agora, criamos o arquivo importar.php para processar a importação:

<?php
if (isset($_FILES['arquivo_csv'])) {
    $arquivo = $_FILES['arquivo_csv']['tmp_name'];
    $conexao = new PDO("mysql:host=localhost;dbname=meu_banco", "usuario", "senha");
    $conexao->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $handle = fopen($arquivo, "r");
    fgetcsv($handle); // Ignorar cabeçalho
    while ($linha = fgetcsv($handle, 1000, ",")) {
        $sql = "INSERT INTO usuarios (nome, email) VALUES (:nome, :email)";
        $stmt = $conexao->prepare($sql);
        $stmt->bindParam(':nome', $linha[0]);
        $stmt->bindParam(':email', $linha[1]);
        $stmt->execute();
    }
    fclose($handle);
    echo "Arquivo CSV importado com sucesso!";
}
?>

Explicação do Código

  • O script recebe o arquivo enviado pelo formulário.
  • Ele abre o arquivo CSV e lê linha por linha usando fgetcsv().
  • Cada linha é inserida no banco de dados utilizando PDO com prepared statements para evitar SQL Injection.
  • fgetcsv($handle); é usado para ignorar o cabeçalho do CSV.

A importação de arquivos CSV no MySQL com PHP permite a rápida inserção de grandes volumes de dados sem a necessidade de operações manuais. Muitas empresas utilizam esse método para importar listas de clientes, produtos ou registros financeiros. A combinação de PHP, CSV e MySQL torna essa tarefa altamente eficiente e escalável.

Algumas aplicações:

  • Importação de listas de usuários para um sistema
  • Atualização massiva de registros no banco de dados
  • Integração entre diferentes sistemas através de arquivos CSV
  • Automação de processos de inserção de dados

Dicas para quem está começando

  • Certifique-se de que o arquivo CSV tem o mesmo formato da tabela no banco.
  • Use fgetcsv() para ler cada linha do arquivo de forma eficiente.
  • Utilize prepared statements para evitar SQL Injection.
  • Valide os dados antes de inseri-los no banco.
  • Exiba mensagens de erro claras para o usuário em caso de falha.

Contribuições de Daniel Moreira

Compartilhe este tutorial: Como importar um arquivo CSV para o MySQL usando PHP?

Compartilhe este tutorial

Continue aprendendo:

Como exportar dados do MySQL para um arquivo CSV usando PHP?

Veja como gerar um arquivo CSV a partir de dados armazenados no MySQL utilizando PHP.

Tutorial anterior

Como contar registros em uma tabela MySQL e exibir o resultado no PHP?

Veja como contar registros de uma tabela MySQL e exibir o resultado em uma página PHP.

Próximo tutorial