Мне нужно экспортировать таблицу с именем «app_users» из моей базы данных в электронную таблицу, например, csv. Как мне это сделать? Кроме того, как мне отправить этот файл в браузер? Я использую фреймворк Zend.
как экспортировать данные таблицы базы данных mysql в электронную таблицу, а затем отправить их в браузер?
Ответы (2)
В соответствии с этим ответом вы можете выполнить следующий SQL-запрос, если у вас есть прямой доступ к файловой системе, на которой находится сервер БД:
SELECT *
FROM app_users
INTO OUTFILE '/tmp/app_users.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
EDIT: вам, вероятно, также потребуется удалить этот файл с помощью php после того, как он будет создан и передан пользователю, иначе при следующем запуске вышеуказанного запроса он может отказаться перезаписывать файл (это значение по умолчанию ).
person
Ryan Weir
schedule
05.07.2013
Спасибо Райан! и как мне отправить его в браузер, чтобы пользователю было предложено диалоговое окно сохранения?
- person Sonu Jha; 05.07.2013
Если вы выполняете эту команду sql в php на сервере, добавьте код после нее в php, который будет возвращать файл обратно в браузер пользователя. См. пример на stackoverflow.com/a/2028918/808532, хотя вам нужно будет изменить типы заголовков на csv .
- person Ryan Weir; 05.07.2013
Оно работало завораживающе! Спасибо! Но файл csv не содержит имен полей в верхней строке. Есть ли способ сделать это?
- person Sonu Jha; 08.07.2013
К сожалению, вам нужно сделать это вручную с помощью UNION в запросе по строкам
SELECT 'first', 'second', 'third' UNION ALL SELECT * FROM app_users
... см. pressingquestion.com/1528089/
- person Ryan Weir; 08.07.2013
также я пытаюсь удалить этот файл, используя unlink(). Но поскольку владельцем файла является mysql, я не могу. Как я могу это исправить?
- person Sonu Jha; 08.07.2013
нажав кнопку экспорта на панели инструментов mysql в базу данных sql
person
user2551695
schedule
05.07.2013
мне нужно отправить файл в браузер, когда посетитель нажимает кнопку загрузки на моем сайте! :)
- person Sonu Jha; 05.07.2013