使用PHP将SQL表导出为CSV格式

使用PHP将SQL表导出为CSV格式,php,mysql,sql,csv,Php,Mysql,Sql,Csv,我尝试这个解决方案从我的数据库导出到CSV,它可以工作,但所有数据都在一个冒号中导出。我想在CSV中组成我,就像在表格数据库中一样。这段代码有什么问题 <?php // Database Connection $host="localhost"; $uname="root"; $pass=""; $database = "a2zwebhelp"; $connection=mysql_connect($host,$uname,$pass); echo mysql_error();

我尝试这个解决方案从我的数据库导出到CSV,它可以工作,但所有数据都在一个冒号中导出。我想在CSV中组成我,就像在表格数据库中一样。这段代码有什么问题

<?php

// Database Connection

$host="localhost";
$uname="root";
$pass="";
$database = "a2zwebhelp"; 

$connection=mysql_connect($host,$uname,$pass); 

echo mysql_error();

//or die("Database Connection Failed");
$selectdb=mysql_select_db($database) or 
die("Database could not be selected"); 
$result=mysql_select_db($database)
or die("database cannot be selected <br>");

// Fetch Record from Database

$output = "";
$table = ""; // Enter Your Table Name 
$sql = mysql_query("select * from $table");
$columns_total = mysql_num_fields($sql);

// Get The Field Name

for ($i = 0; $i < $columns_total; $i++) {
$heading = mysql_field_name($sql, $i);
$output .= '"'.$heading.'",';
}
$output .="\n";

// Get Records from the table

while ($row = mysql_fetch_array($sql)) {
for ($i = 0; $i < $columns_total; $i++) {
$output .='"'.$row["$i"].'",';
}
$output .="\n";
}

// Download the file

$filename = "myFile.csv";
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);

echo $output;
exit;

?>

如果使用“
\n
”作为行分隔符,并在notepad.exe中打开该文件,则不会正确地将其识别为“回车换行符”,整个文件似乎只是“一条大行”—但实际上并非如此

您可以使用“
\r\n
”终止行以防止此影响


为了让Excel自动识别,请使用
作为字段分隔符而不是

而不是
\n
使用常量
PHP\u EOL
。。。这在UNIX上也是一样的,如果他从UNIX转换到Windows,也不能解决OPs问题。。。