Aprenda a exportar dados do MySQL para um arquivo CSV com PHP

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

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

Exportar dados do banco de dados MySQL para um arquivo CSV é uma prática útil para gerar relatórios, criar backups ou compartilhar informações entre sistemas. O CSV (Comma-Separated Values) é um formato amplamente suportado por planilhas e ferramentas de análise de dados.

Criando um Script para Exportação

Podemos utilizar PDO para buscar os dados e a função fputcsv() para gerar o arquivo CSV:

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

// Definir cabeçalhos para download do arquivo
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=dados.csv');

// Abrir um ponteiro de saída
$saida = fopen('php://output', 'w');

// Definir cabeçalho das colunas
fputcsv($saida, array('ID', 'Nome', 'Email'));

// Buscar os dados do MySQL
$sql = "SELECT id, nome, email FROM usuarios";
$stmt = $conexao->prepare($sql);
$stmt->execute();

// Escrever os dados no CSV
while ($linha = $stmt->fetch(PDO::FETCH_ASSOC)) {
    fputcsv($saida, $linha);
}
?>

Explicação do Código

  • Definimos os headers HTTP para indicar que o arquivo será baixado.
  • Abrimos um arquivo CSV usando fopen('php://output', 'w').
  • Escrevemos o cabeçalho do arquivo com fputcsv().
  • Iteramos sobre os resultados da query e gravamos os dados no arquivo CSV.

A exportação de dados para CSV é um recurso essencial para sistemas administrativos e financeiros. Ele permite que os usuários façam o download de informações para análise em planilhas como Excel ou Google Sheets. Além disso, a integração entre diferentes plataformas torna-se mais fácil ao utilizar este formato amplamente suportado.

Algumas aplicações:

  • Geração de relatórios administrativos
  • Exportação de cadastros para análise externa
  • Integração de dados entre sistemas diferentes
  • Criação de backups simplificados

Dicas para quem está começando

  • Utilize php://output para evitar criar arquivos temporários.
  • Defina os cabeçalhos HTTP corretamente para forçar o download do arquivo.
  • Use fputcsv() para formatar os dados no formato correto.
  • Certifique-se de que os dados estão corretamente codificados para evitar erros com caracteres especiais.
  • Se necessário, utilize delimitadores personalizados no fputcsv().

Contribuições de Daniel Moreira

Compartilhe este tutorial: Como exportar dados do MySQL para um arquivo CSV usando PHP?

Compartilhe este tutorial

Continue aprendendo:

Como fazer paginação de resultados no MySQL com PHP?

Veja como criar um sistema de paginação eficiente para exibir registros do MySQL em partes, evitando sobrecarga no servidor.

Tutorial anterior

Como importar um arquivo CSV para o MySQL usando PHP?

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

Próximo tutorial