@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-скрипта.
@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-файла пользователю для загрузки.