Разделитель полей MySQL и fputcsv PHP не работает

Вот мой код:

<?php
error_reporting(E_ALL ^ E_NOTICE);
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
fputcsv($output, array('field1', 'field2'),';','"');
mysql_connect('localhost', 'usr', 'psswd');
mysql_select_db('db');
$rows = mysql_query('
SELECT
field1,
field2
FROM table
');
while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row);
mysqli_close($con);
?>

Результатом является то, что «;» разделитель используется только в заголовке файла CSV, а не в каждой строке.
Танки.

0

Решение

Ты не сидишьдиалект«(разделитель и вложение), когда вы перебираете желобковые строки. ';','"' часть. Просто используйте:

while ($row = mysql_fetch_assoc($rows)){
fputcsv($output, $row,';','"');
}

Также для этого конкретного случая использования mysql_fetch_row() может быть более подходящим (вы избегаете использования строковых индексов и просто используете числовые).

Примечание: mysql_ Семейные функции устарели, если это возможно, попробуйте заменить его на mysqli_ или же PDO.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]