Principais conclusões:
- Gere facilmente os dados da tua aplicação PHP, aprendendo a importar e exportar entre ficheiros MySQL e CSV.
- Este tutorial prático, passo a passo, com exemplos de código, irá guiar-te através de uma transferência de dados sem problemas.
- Torna-te competente nestas técnicas para simplificar tarefas como a migração de dados, cópias de segurança e integrações de sistemas.
O PHP é amplamente utilizado para construir uma vasta gama de produtos, desde aplicações Web a aplicações de nível empresarial. A chave para um código PHP eficiente é seguir fluxos de trabalho adequados e automatizar processos. O resultado é um código de alta qualidade e sem erros.
Em quase todas as aplicações PHP, os dados são armazenados, acedidos e trocados entre vários componentes da aplicação. Para garantir que este intercâmbio e acesso aos dados decorre sem problemas, a equipa de desenvolvimento tem de se certificar de que as bases de dados e as descargas de dados estão no formato correto.
A importação e exportação de dados de e para bases de dados é um procedimento bastante comum no desenvolvimento de PHP. Outra atividade importante é o backup e a transferência de bases de dados.
Neste artigo, vou explicar como exportar um ficheiro csv a partir de tabela de dados mysql. Tens de regista-te na Cloudways para iniciar um servidor e uma aplicação PHPstack. Antes de te inscreveres, é aconselhável analisar todas as opções de preços dos fornecedores de alojamento de classe mundial, como a AWS, a DigitalOcean, a Linode, a Vultr e a GCP, para que possas encontrar a que melhor se adapta às tuas necessidades.
Aloja sites PHP com facilidade [A partir de $10 de crédito]
- Encenação gratuita
- Backup gratuito
- PHP 8.0
- Websites ilimitados

Cria uma base de dados no MySQL
O primeiro passo neste tutorial é a criação de um ficheiro Base de dados MySQL. Desde que Cloudways fornece o gestor mysql personalizado na plataforma que contém uma base de dados para a aplicação. podes criar tabelas executando consultas SQL. Cria uma tabela ` informação do empregado na base de dados utilizando a seguinte consulta SQL.
CREATE TABLE employeeinfo( emp_id VARCHAR(50) UNSIGNED PRIMARY KEY, firstname VARCHAR(30) NOT NULL, apelido VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date VARCHAR(50) )

Cria uma nova tabela `informação do empregado na base de dados. Utilizarei esta tabela para inserir dados do ficheiro CSV.
Pára de perder tempo com os servidores
A Cloudways trata da gestão de servidores por ti, para que te possas concentrar na criação de excelentes aplicações e em manter os teus clientes satisfeitos.
Cria uma ligação MySql em PHP
Para importar e exportar a base de dados no MySql faz um ficheiro separado `config.php`. Adiciona o seguinte código e substitui as credenciais da base de dados pelas tuas. Podes encontrar as tuas credenciais de base de dados em Detalhes de acesso à aplicação:

<?php
função getdb(){
$servername = "localhost";
$username = "huscqxzwaw";
$password = "2WWKxxxxHr";
$db = "huscqxzwaw";
tenta {
$conn = mysqli_connect($servername, $username, $password, $db);
//echo "Ligado com sucesso";
}
catch(exceção $e)
{
echo "A ligação falhou: " . $e->getMessage();
}
devolve $conn;
}
?>
Como ligar a base de dados MySQL a sites PHP>
Como importar CSV para MySQL usando PHP?
Depois de a base de dados ter sido criada, precisamos de um ficheiro HTML que possa carregar um ficheiro CSV. Vamos começar com passos simples a seguir.
Passo 1: Cria uma base de dados e uma tabela
Primeiro, tens de criar uma base de dados e uma tabela no MySQL onde vais armazenar os dados CSV. Segue um exemplo de consulta SQL para criar uma tabela chamada employeeinfo:
CREATE TABLE employeeinfo ( emp_id INT(11) NOT NULL, nome próprio VARCHAR(255) NOT NULL, apelido VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, reg_date DATE NOT NULL, PRIMARY KEY (emp_id) );
Passo 2: Concebe o formulário de importação
Agora precisamos de criar um formulário HTML para carregar o ficheiro CSV. Este formulário permitirá que os utilizadores seleccionem um ficheiro CSV do seu computador e o carreguem para o teu servidor.
<form action="index.php" method="post" enctype="multipart/form-data"> </form>
Passo 3: Trata do carregamento e da validação de ficheiros
No teu script PHP, trata do carregamento do ficheiro e valida que o ficheiro carregado é um ficheiro CSV.
se (isset($_POST["Import"])) {
$filename = $_FILES["file"]["tmp_name"];
// Verifica se o ficheiro é um ficheiro CSV
Se (pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION) != "csv") {
echo "Carrega um ficheiro CSV";
sai;
}
// Prossegue com a importação do ficheiro CSV
importCSV($filename);
}
Passo 4: Importar dados CSV para o MySQL
Cria uma função chamada importCSV() para lidar com a importação de CSV. Esta função irá ler o ficheiro CSV e inserir os seus dados na base de dados MySQL utilizando instruções preparadas.
functions.php (Secção de importação)
Eis como podes implementar a função importCSV() de forma segura:
função importCSV($filename) {
// Obtém uma ligação segura à base de dados
$conn = getConnection(); // Certifica-te de que esta função devolve uma ligação segura
// Abre o ficheiro CSV
$file = fopen($filename, "r");
// Salta a linha do cabeçalho (se existir)
fgetcsv($file, 10000, ","); // Ajusta o delimitador se necessário
// Prepara a consulta SQL
$sql = "INSERIR INTO employeeinfo (emp_id, firstname, lastname, email, reg_date) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
se ($stmt === false) {
die("Error preparing statement: " . $conn->error); // Trata o erro de preparação
}
// Liga os parâmetros
$stmt->bind_param("sssss", $emp_id, $firstname, $lastname, $email, $reg_date);
while (($getData = fgetcsv($file, 10000, ",")) !== FALSE) {
// Valida os dados (exemplo de validação)
se (count($getData) != 5) {
error_log("Linha CSV inválida: " . implode(",", $getData));
continue; // Passa para a linha seguinte
}
// Atribui valores
$emp_id = $getData[0];
$firstname = $getData[1];
$lastname = $getData[2];
$email = $getData[3];
$reg_date = $getData[4];
// Executa a consulta
se (!$stmt->execute()) {
error_log("Erro ao inserir a linha: " . $stmt->error);
}
}
// Fecha a declaração e a ligação
$stmt->close();
fclose($file);
$conn->close();
ecoa "
alert(\"O ficheiro CSV foi importado com sucesso.\");
window.location = \"index.php\"
";
}
// Exemplo de uma função getConnection() segura
função getConnection(): mysqli
{
$servername = $_ENV["DB_HOST"] ?? "localhost"; // Predefine para localhost se não estiver definido
$username = $_ENV["DB_USER"] ?? "your_db_user"; // Fornece predefinições razoáveis
$password = $_ENV["DB_PASSWORD"] ?? "a tua palavra-passe_db";
$dbname = $_ENV["DB_NAME"] ?? "teu_nome_do_banco_de_dados";
tenta {
$conn = new mysqli($servername, $username, $password, $dbname);
se ($conn->connect_error) {
lança uma nova Exceção ("A ligação falhou: " . $conn->connect_error);
}
devolve $conn;
} catch (Exception $e) {
error_log("Erro de ligação à base de dados: " . $e->getMessage()); // Regista o erro
die("Failed to connect to the database. Check your configuration."); // Erro fatal, pára a execução
}
}
Alternativa: Usando o INFILE DE CARGA DE DADOS do MySQL
Para arquivos CSV grandes, considera usar o comando LOAD DATA INFILE do MySQL, que é muito mais rápido do que processar o arquivo linha por linha com o PHP:
$loadSQL = "LOAD DATA LOCAL INFILE '$filename' INTO TABLE employeeinfo FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINHAS TERMINADAS POR '\n' IGNORE 1 LINHAS"; mysqli_query($conn, $loadSQL);
Este método requer a palavra-chave LOCAL se estiveres a executar a consulta a partir de um servidor remoto. Certifica-te de que o utilizador MySQL tem as permissões necessárias para utilizar LOAD DATA INFILE.
Apresenta os registos guardados
Uma vez importado o ficheiro CSV, vou apresentar os dados através de uma função simples, `get_all_records()`, inicializado em `index.php`. Copia esta função para `function.php`.
função get_all_records(){
$con = getdb();
$Sql = "SELECT * FROM employeeinfo";
$resultado = mysqli_query($con, $Sql);
Se (mysqli_num_rows($result) > 0) {
ecoa "
ID EMP
Nome próprio
Último nome
Correio eletrónico
Data de registo
";
while($row = mysqli_fetch_assoc($result)) { ecoa ”
" . $linha['emp_id']."
" . $linha['primeiro nome']."
" . $linha['apelido']."
" . $row['email']."
" . $row['reg_date']."
“; } ecoa “”; } else { echo “não tens registos”; } }
Neste método muito simples, selecionei simplesmente todos os registos e apresentei-os na página de índice através do método. Sempre que o utilizador carregar um ficheiro CSV, os registos serão guardados na tabela e depois apresentados na página de índice.
Exportar MySQL para CSV com PHP
Exportar dados da base de dados MySQL para um ficheiro CSV é igualmente muito fácil. Para o demonstrar, vou usar o comando index.php que criei anteriormente.
Adiciona o seguinte código ao ficheiro.
<div>
enctype=”multipart/form-data”>
</div>
Depois de adicionares esta marcação HTML, o ficheiro Exportação aparecerá por baixo da tabela. Agora, adiciona a seguinte condição em functions.php.
se(isset($_POST["Export"]))){
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen("php://output", "w");
fputcsv($output, array('ID', 'First Name', 'Last Name', 'Email', 'Joining Date'));
$query = "SELECT * from employeeinfo ORDER BY emp_id DESC";
$resultado = mysqli_query($con, $query);
while($row = mysqli_fetch_assoc($result))
{
fputcsv($output, $row);
}
fclose($output);
}
Quando o `Exportar` é clicado, os cabeçalhos `Content-Type: text/csv` com um anexo `dados.csv` é enviado.
Desde que `php://output` é um fluxo somente de escrita que permite acesso de escrita ao mecanismo de buffer de saída, eu selecionei todos os dados da tabela na próxima linha, e passei para `fputcsv()` método. Este método formata uma linha (passada como uma matriz de campos) como CSV e escreve-a (terminada por uma nova linha) no ficheiro especificado. Finalmente, descarrega o ficheiro com todos os dados desejados.
Finalmente, depois de integrares todo o código, verás a seguinte forma final da aplicação.

Hospedagem PHP gerenciada superalimentada – Para velocidade 10X e segurança de ferro
Liberta o verdadeiro poder do teu site com o alojamento PHP – onde a velocidade, a segurança e o desempenho sem falhas se juntam para uma experiência online excecional!
Conclusão
Neste artigo, discuti como podes exportar dados de e para ficheiros CSV utilizando PHP e MySQL. Este é um exemplo simples. Podes adicionar lógica e validações mais complexas de acordo com os teus requisitos. Também podes criar casos de teste para verificar o código e integrar com o GitHub utilizando PHP Integração Contínua Ferramentas. Se quiseres contribuir para a discussão ou se quiseres fazer uma pergunta, deixa um comentário em baixo e embarca na tua viagem de codificação com a ajuda de melhor serviço de alojamento PHP.
Como é que posso importar e exportar CSV utilizando PHP e MySQL?
Para importar e exportar ficheiros CSV em PHP com MySQL, começa por validar o carregamento do ficheiro com a função is_uploaded_file() do PHP. Em seguida, abre o arquivo usando , e lê o conteúdo com . Depois de analisar os dados, insere-os ou actualiza-os na base de dados MySQL com base em identificadores únicos, como o e-mail.
Existem bibliotecas ou funções PHP especificamente concebidas para importar/exportar dados CSV?
Sim, o PHP oferece várias ferramentas para lidar com arquivos CSV. A função incorporada lê linhas CSV, enquanto bibliotecas como League\Csv simplificam a gestão de dados CSV, e PhpSpreadsheet suporta vários formatos de ficheiro. Além disso, o ParseCsv é uma opção leve para tarefas específicas de CSV.
Há alguma limitação ou consideração ao importar ou exportar grandes ficheiros CSV com PHP e MySQL?
Ao trabalhar com arquivos CSV grandes, as principais considerações incluem o uso de memória, o tempo de execução e a capacidade de lidar com pedaços de dados. É importante validar e sanitizar os dados, garantir a codificação e o formato adequados e implementar o tratamento de erros para um processamento mais suave.
Quais são algumas alternativas ao PHP e ao MySQL para importar e exportar dados CSV?
Alternativas ao PHP e ao MySQL para lidar com ficheiros CSV incluem Python com pandas para uma poderosa manipulação de dados, R para tarefas estatísticas e Java com Apache Commons CSV. Ferramentas de linha de comando como awk e sed oferecem capacidades de processamento de texto, enquanto o Excel ou o Google Sheets oferecem interfaces fáceis para pequenos conjuntos de dados.
Como importar e exportar ficheiros CSV utilizando PHP e MySQL?
Para importar e exportar ficheiros CSV, valida o carregamento do ficheiro utilizando is_uploaded_file() e lê-o com fopen() e fgetcsv(). Após a análise, insere ou actualiza os dados no MySQL, assegurando o tratamento adequado de ficheiros maiores, incluindo a gestão de chunking e de memória.
Como importar CSV para MySQL usando PHP?
Para importar CSV para o MySQL utilizando PHP, abre o CSV com fopen(), depois lê cada linha com fgetcsv() e insere os dados na base de dados MySQL utilizando consultas SQL. Certifica-te de que os caminhos dos ficheiros e os erros são tratados corretamente para uma importação eficiente.
Como exportar um ficheiro CSV para o MySQL?
A exportação de um ficheiro CSV para o MySQL envolve a preparação do CSV, a criação de uma tabela no MySQL e a utilização de comandos SQL como LOAD DATA INFILE para importar o ficheiro. Certifica-te de que os mapeamentos de colunas estão corretos para se alinharem com a estrutura da base de dados.
Shahzeb Ahmed
Um criativo de dia (com uma chávena de chá) e um criativo de noite. Ahmad Kamran é um escritor de conteúdos sazonais e Executivo de Marketing Sénior na Cloudways. Podes encontrá-lo na sua secretária a escrever, a criar estratégias ou a jogar jogos. E, caso não o encontres aqui, ele estará nas montanhas ou à beira do rio.