我正在尝试将 sql 表导出到 CSV,但是,我的输出不会生成列标题。如何在不手动创建数组的情况下从 SQL 表中检索列标题?
我尝试了 mysqli_num_fields 但它不起作用。 我收到一个错误代码,指出它不转换字符串。我不知道还能用什么。 致命错误:未捕获错误:调用 C:\xampp\htdocs 中未定义的函数 mysql_num_fields() ew.php:16 这是我收到的错误。 我想将表格导出到带有动态列标题的 Excel
首先,值得注意的是,您提到的错误与
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 文件。