Как сохранить данные из mysql в csv через php?

Пользователь

от richie_mayert , в категории: PHP , год назад

Как сохранить данные из mysql в csv через php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jazmyne , год назад

@richie_mayert 

Для сохранения данных из MySQL в CSV-файл через PHP, можно использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Подключение к базе данных MySQL
$host = 'localhost';
$db = 'database';
$user = 'username';
$password = 'password';

$dsn = "mysql:host=$host;dbname=$db;charset=utf8";

try {
    $pdo = new PDO($dsn, $user, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Подключение не удалось: ' . $e->getMessage();
    exit();
}

// Запрос для получения данных из таблицы
$query = "SELECT * FROM table_name";
$stmt = $pdo->prepare($query);
$stmt->execute();

// Создание CSV-файла и запись данных в него
$filename = 'data.csv';
$file = fopen($filename, 'w');

// Запись заголовков столбцов
$headers = array('Column 1', 'Column 2', 'Column 3');
fputcsv($file, $headers);

// Запись данных из базы в CSV-файл
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    fputcsv($file, $row);
}

fclose($file);

echo 'Данные успешно сохранены в CSV-файле!';


В данном примере, необходимо заменить значения $host, $db, $user и $password на соответствующие значения для вашей базы данных MySQL. Также нужно указать имя таблицы (table_name) и заголовки столбцов (Column 1, Column 2, Column 3). Файл будет сохранен с именем data.csv в рабочей директории вашего PHP-скрипта.

Пользователь

от evalyn.barrows , 5 месяцев назад

@richie_mayert 

Если вы хотите, чтобы CSV-файл с данными был скачан пользователем вместо того, чтобы просто сохранять его на сервере, можно добавить следующие строки кода для отправки файла пользователю:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// Отправка HTTP-заголовков для скачивания файла
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="data.csv"');

// Открытие CSV-файла для записи
$fp = fopen('php://output', 'w');

// Запись заголовков столбцов
$headers = array('Column 1', 'Column 2', 'Column 3');
fputcsv($fp, $headers);

// Запись данных из базы в CSV-файл
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    fputcsv($fp, $row);
}

fclose($fp);


Выполнение этого кода после закрытия файла также позволит отправить заголовки и данные CSV-файла пользователю для загрузки.