Как преобразовать MySQL таблицы в текстовый файл в PHP? - PullRequest
1 голос
/ 31 августа 2009

Что такое php-скрипт для преобразования таблицы mysql в текстовый файл? Я преобразовал его в формат CSV, который открывается в виде файла Excel. Я также хочу данные таблицы в текстовом файле. Как мне это сделать?

Для преобразования в формат CSV я использовал данные заголовка как:

$filename = "export_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header("Content-disposition: filename=".$filename.".csv");

Я попытался использовать заголовок ("Content-type: text / plain"); и использовал расширение .txt. Это не сработало .. Кто-нибудь, наведите меня, пожалуйста.

Ответы [ 4 ]

1 голос
/ 31 августа 2009

что насчет этого - SQL (cvs)

SELECT          *  
FROM            TABLE1 
INTO            OUTFILE 'path\file.cvs' 
                FIELDS TERMINATED BY '\,' 
                OPTIONALLY ENCLOSED BY '\"'
                LINES TERMINATED BY '\n'

Если вы хотите простой текст -

SELECT          *  
FROM            TABLE1 
INTO            OUTFILE 'path\file.sql'

MySQL док

ВЫБРАТЬ ... В OUTFILE Форма 'file_name' SELECT записывает выделенные строки в файл. Файл создан на хосте сервера, поэтому вы должен иметь привилегию FILE для использования этот синтаксис. имя_файла не может быть существующий файл, который среди прочего вещи мешают такие файлы как / etc / passwd и таблицы базы данных из быть уничтоженным. Начиная с MySQL 5.0.19, система character_set_filesystem переменная контролирует интерпретацию имени файла.

1 голос
/ 31 августа 2009

Файл .csv - это простой текстовый файл, вы просто отправляете заголовки, которые открывают его в Excel.

Если вам нужен файл того же формата, но не открытый в Excel, просто не отправляйте эти заголовки:

header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header("Content-disposition: filename=".$filename.".csv");

И вместо этого пошлите это:

header('Content-Type: text/plain');

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

header('Content-Type: application/force-download');
1 голос
/ 31 августа 2009

mysqldump создаст файл в формате CSV для вас:

mysqldump -u User1 -p -t -T/path/to/sav [database] --fields-enclosed-by=\" --fields-terminated-by=, --lines-terminated-by=\r\n --no-create-db --no-create-info

--fields-enclosed-by=\" гарантирует, что все ваши поля заключены в кавычки, а --fields-terminated-by=, делает эти поля разделенными запятыми.

0 голосов
/ 01 сентября 2009

Я нашел способ сохранить свою таблицу в текстовом формате, сохраненную в виде приложения MS Word с расширением .doc. И заголовки приведены ниже

header("Content-Type: application/msword");
header("Content-disposition: attachment" . date("Y-m-d") . ".doc");
header("Content-disposition: filename=".$filename.".doc");

Но сейчас я пытаюсь отобразить его в виде таблицы в текстовом файле. Потому что это похоже на ненужные данные без какого-либо выравнивания. Добавление табуляции не помогает .. Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...