Intereting Posts
Как получить доступ к переменным сеанса PHP из функции jQuery в файле .js? Symfony 2 должен реализовывать UserProviderInterface [PHP Предупреждение: mail (): «sendmail_from» не установлен в php.ini или пользовательский заголовок «From:» отсутствует Преобразование изображения в строку (для Symfony2 Response) Как получить результат инструкции после инструкции EXECUTE в mySQL? Получить ключ последнего элемента в массиве Закрытие объектов внутри массивов до PHP 5.3 Хранение большого JSON – двоичного или текстового Символическая доктрина auto_mapping Непризнанная Вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: lists () при посеве после обновления до Laravel 5.3 Удаление index.php в CodeIgniter просто работает для URL-адреса контроллера по умолчанию $ _SERVER не работает в Mozilla Получение текущей даты, времени, дня в laravel PHP simplexml_load_file со специальными символами в URL-адресе Сравнение строк php с 0 integer возвращает true?

Хранение данных из таблицы MySQL в формате CSV с использованием PDO через браузер

У меня есть форма, которая записывает данные в базу данных MySQL. Я хочу, чтобы пользователь мог загружать свои данные в CSV после окончательного представления.

Мой код в настоящее время сбрасывает содержимое базы данных в браузер, то есть записывается на страницу, а не в файл csv. Я хотел бы отправить их по ссылке и получить возможность загрузить файл.

Вот мой текущий код:

 $dbo = new PDO('mysql:host=localhost;dbname=db1', $username, $password); $sql = "SELECT * FROM table1"; $qry = $dbo->prepare($sql); // Execute the statement $qry->execute(); var_dump($qry->fetch(PDO::FETCH_ASSOC)); $data = fopen('/tmp/db_user_export_".time().".csv', 'w'); while ($row = $qry->fetch(PDO::FETCH_ASSOC)) { echo "Success"; // Export every row to a file fputcsv($data, $row); } 

Текущий результат – это страница с дампом всех данных из таблицы. Файл не создается в нужном месте. Где я иду не так?

Solutions Collecting From Web of "Хранение данных из таблицы MySQL в формате CSV с использованием PDO через браузер"

Клиент не знает, что это CSV-файл (это все-таки текст!).

Попытайтесь добавить это перед выходом (в верхней части вашего скрипта):

 header("Content-type: text/csv"); header("Content-Disposition: attachment; filename=file.csv"); header("Pragma: no-cache"); header("Expires: 0"); 

В основном, вы сообщаете клиенту / браузеру, что данные, которые вы будете отправлять CSV-файл.

Это должно сработать.

Дополнительную информацию о заголовках можно найти здесь: http://php.net/manual/en/function.header.php