使用 PHP 将 SQL 数据导出到 CSV

问题描述 投票:0回答:1

我正在尝试将 sql 表导出到 CSV,但是,我的输出不会生成列标题。如何在不手动创建数组的情况下从 SQL 表中检索列标题?

我尝试了 mysqli_num_fields 但它不起作用。 我收到一个错误代码,指出它不转换字符串。我不知道还能用什么。 致命错误:未捕获错误:调用 C:\xampp\htdocs 中未定义的函数 mysql_num_fields() ew.php:16 这是我收到的错误。 我想将表格导出到带有动态列标题的 Excel

php mysqli export-to-csv
1个回答
0
投票

首先,值得注意的是,您提到的错误与

mysql_num_fields
的使用有关,它已经过时,不建议与MySQLi(MySQL改进版)函数一起使用。您应该使用
mysqli_num_fields
来代替。

要将数据导出到具有动态列标题的 CSV 文件,您可以使用以下方法:

<?php
// Establish a MySQLi connection
$mysqli = new mysqli("localhost", "username", "password", "database");

// Check for connection errors
if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

// Specify the table you want to export
$table_name = "your_table_name";

// Retrieve column headings dynamically
$columns = array();
$result = $mysqli->query("SELECT * FROM $table_name LIMIT 1");
if ($result) {
    while ($fieldinfo = $result->fetch_field()) {
        $columns[] = $fieldinfo->name;
    }
    $result->close();
}

// Create and open a CSV file for writing
$csv_filename = "exported_data.csv";
$csv_file = fopen($csv_filename, "w");

// Write column headings to the CSV file
fputcsv($csv_file, $columns);

// Query and export data
$query = "SELECT * FROM $table_name";
$result = $mysqli->query($query);
if ($result) {
    while ($row = $result->fetch_assoc()) {
        fputcsv($csv_file, $row);
    }
}

// Close the CSV file and the database connection
fclose($csv_file);
$mysqli->close();
?>

此代码片段连接到您的数据库,动态检索列标题,并将数据导出到 CSV 文件。

© www.soinside.com 2019 - 2024. All rights reserved.