Экспорт данных CSV с заголовками с использованием PHP SQL сервера

0

Я пытаюсь экспортировать данные из таблицы базы данных 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
    Я настоятельно рекомендую использовать fputcsv() вместо вашей собственной реализации. php.net/manual/en/function.fputcsv.php
Теги:
csv
sql-server-2012
export-to-csv

1 ответ

1
Лучший ответ
$out .= implode("\t", array_keys($data)) . "\n";

Создает линию, разделенную на вкладку, но в другом месте вы используете запятую.

Вероятно, вы тоже хотите использовать запятую:

$out .= implode(",", array_keys($data)) . "\n";
  • 0
    Большое спасибо :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню