使用PHP SQL服务器使用标头导出CSV数据

时间:2015-03-05 16:49:14

标签: php csv sql-server-2012 export-to-csv

我正在尝试将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";

}

1 个答案:

答案 0 :(得分:1)

$out .= implode("\t", array_keys($data)) . "\n";

正在创建制表符分隔线,但在其他地方您使用逗号分隔。

也许你想在这里使用逗号:

$out .= implode(",", array_keys($data)) . "\n";