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.
Por que exportar dados do MySQL para CSV com PHP?
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