Gerar arquivo CSV de forma rápida e facilitada em PHP com dados vindos de MySQL.

Você pode gerar um arquivo CSV a partir de uma consulta MySQL em PHP de forma rápida e fácil. Aqui está um exemplo simples de como fazer isso:

<?php
// Conexão com o banco de dados MySQL
$servername = "localhost";
$username = "seu_usuario";
$password = "sua_senha";
$dbname = "seu_banco_de_dados";

// Cria a conexão
$conn = new mysqli($servername, $username, $password, $dbname);

// Verifica a conexão
if ($conn->connect_error) {
    die("Erro na conexão: " . $conn->connect_error);
}

// Consulta ao banco de dados
$sql = "SELECT * FROM sua_tabela";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // Nome do arquivo CSV que será gerado
    $filename = 'dados.csv';
    
    // Abre o arquivo CSV para escrita
    $fp = fopen($filename, 'w');

    // Escreve o cabeçalho do CSV
    $header = array('Coluna1', 'Coluna2', 'Coluna3'); // Substitua pelos nomes das suas colunas
    fputcsv($fp, $header);

    // Escreve os dados da consulta no CSV
    while ($row = $result->fetch_assoc()) {
        fputcsv($fp, $row);
    }

    // Fecha o arquivo CSV
    fclose($fp);

    echo "Arquivo CSV gerado com sucesso!";
} else {
    echo "Nenhum resultado encontrado.";
}

// Fecha a conexão com o banco de dados
$conn->close();
?>

Certifique-se de substituir 'localhost', 'seu_usuario', 'sua_senha', 'seu_banco_de_dados', 'sua_tabela', e Coluna1, Coluna2, Coluna3 pelos valores corretos de acordo com o seu ambiente.

Este script se conecta ao banco de dados MySQL, executa uma consulta SQL e gera um arquivo CSV com os resultados. O arquivo CSV será nomeado como “dados.csv” e será gerado no mesmo diretório onde o script PHP está localizado.

Para forçar o download automático do arquivo CSV gerado, você pode adicionar alguns cabeçalhos HTTP ao seu script PHP. Isso instruirá o navegador a tratar o arquivo como um anexo para download em vez de exibi-lo no navegador. Aqui está como você pode modificar o script anterior para realizar isso:

<?php
// Conexão com o banco de dados MySQL
$servername = "localhost";
$username = "seu_usuario";
$password = "sua_senha";
$dbname = "seu_banco_de_dados";

// Cria a conexão
$conn = new mysqli($servername, $username, $password, $dbname);

// Verifica a conexão
if ($conn->connect_error) {
    die("Erro na conexão: " . $conn->connect_error);
}

// Consulta ao banco de dados
$sql = "SELECT * FROM sua_tabela";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // Nome do arquivo CSV que será gerado
    $filename = 'dados.csv';
    
    // Abre o arquivo CSV para escrita
    $fp = fopen($filename, 'w');

    // Escreve o cabeçalho do CSV
    $header = array('Coluna1', 'Coluna2', 'Coluna3'); // Substitua pelos nomes das suas colunas
    fputcsv($fp, $header);

    // Escreve os dados da consulta no CSV
    while ($row = $result->fetch_assoc()) {
        fputcsv($fp, $row);
    }

    // Fecha o arquivo CSV
    fclose($fp);

    // Força o download do arquivo CSV
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    readfile($filename);
    exit;
} else {
    echo "Nenhum resultado encontrado.";
}

// Fecha a conexão com o banco de dados
$conn->close();
?>

Com essas linhas adicionadas antes de gerar o arquivo CSV, o navegador será instruído a fazer o download do arquivo CSV automaticamente, em vez de exibi-lo na janela do navegador.

Rolar para cima