我正在尝试将SQL Server数据库上的表中的数据导出到CSV文件。 数据格式正确并放在文件的每个单独单元格中。但标题格式不正确,并作为连续流打印在一个单元格上。
假设您有a,b,c,d作为标题: 标题以abcd形式打印到第一个单元格上,并且不会向单个单元格吐出。我们如何将它们分开?
以下是代码:
$flag = false;
if ($query) {
while( $data = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC) ) {
foreach($data AS $key => $value){
if(!$flag) {
// display field/column names as first row
$out .= implode("\t", array_keys($data)) . "\n";
//$out .= '"'.$head.'",';
$flag = true;
}
//If the character " exists, then escape it, otherwise the csv file will be invalid.
$pos = strpos($value, '"');
if ($pos !== false) {
$value = str_replace('"', '\"', $value);
}
$out .= '"'.$value.'",';
}
$out .= "\n";
}
答案 0 :(得分:1)
$out .= implode("\t", array_keys($data)) . "\n";
正在创建制表符分隔线,但在其他地方您使用逗号分隔。
也许你想在这里使用逗号:
$out .= implode(",", array_keys($data)) . "\n";