Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MSSQL选择导出到CSV_Php_Sql Server_Csv_Export To Csv - Fatal编程技术网

Php MSSQL选择导出到CSV

Php MSSQL选择导出到CSV,php,sql-server,csv,export-to-csv,Php,Sql Server,Csv,Export To Csv,我尝试使用mssql数据库中的选定行创建csv文件。 导出工作正常,但格式错误 PHP: 不知道为什么没有标题,我需要按列分开的数据。 问题是否由缺少标题引起 升华文本中的输出 appointment_id,terminname,datum 151,"Bitte Terminnamen vergeben",18.02.2014 152,"Bitte Terminnamen vergeben",19.02.2014 153,"Bitte Terminnamen vergeben",20.02.20

我尝试使用mssql数据库中的选定行创建csv文件。 导出工作正常,但格式错误

PHP:

不知道为什么没有标题,我需要按列分开的数据。 问题是否由缺少标题引起

升华文本中的输出

appointment_id,terminname,datum
151,"Bitte Terminnamen vergeben",18.02.2014
152,"Bitte Terminnamen vergeben",19.02.2014
153,"Bitte Terminnamen vergeben",20.02.2014
154,"Bitte Terminnamen vergeben",25.02.2014
155,"Bitte Terminnamen vergeben",26.02.2014
156,"Bitte Terminnamen vergeben",27.02.2014
157,"Bitte Terminnamen vergeben",31.12.2014

与SublimiteText的第二个输出一样,
$headers
数组不包含任何内容

因此语句
$headers[]=sqlsrv\u get\u字段($result,$i)需要检查

由于它进一步转储数组而不是打印它,我会尝试:
fputcsv($fp,array_values($headers))


为了让Excel正确解释,请将分隔符更改为
fputcsv($fp,数组_值($headers),“;”)

问题在于,sqlsrv_get_field()返回当前字段中的数据,而不是名称,必须通过调用sqlsrv_fetch()将其设置为使用正确的索引。但这不是你想做的。您需要做的是获取标题,可以这样做:

foreach( sqlsrv_field_metadata($result) as $fieldMetadata)
{
    $headers[] = $fieldMetadata['Name'];
}
正如Alex已经指出的,将标题写入csv文件的正确方法是:

fputcsv($fp, array_values($headers));

现在,关于文件在Excel中的显示方式,您可以使用文本导入向导导入文件,解释如下

请使用编辑器(记事本)打开输出,并在此处发布纯结果,而不是Excel,因为Excel没有正确显示全部内容(它是alwa正在尝试动态导入)好的,这是获取具有字段\元数据的列名的唯一方法。用当前输出更新了我的问题。当我添加fputcsv($fp,数组_值($headers),“;”)时;我得到相同的输出,但值始终是标题。
fputcsv($fp, array_values($headers));