mySql INTO OUTFILE проблема с php - PullRequest
0 голосов
/ 20 апреля 2011

Я использую mySql INTO OUTFILE для создания файла с данными sql.

$wpdb->query("SELECT * INTO OUTFILE 'result.sql'  FROM ". DB_PHOTOS .";");

Теперь я хочу получить файл для загрузки на стороне клиента (с PHP).Поскольку это плагин WordPress, я не хочу быть привязанным к конкретному месту (например, c: / result).Как мне получить этот файл с помощью PHP и загрузить его?

Ответы [ 2 ]

2 голосов
/ 20 апреля 2011

Сформируйте руководство по mysql:

Оператор SELECT ... INTO OUTFILE предназначен в первую очередь для того, чтобы вы могли очень быстро вывести таблицу в текстовый файл на сервере.Если вы хотите создать результирующий файл на каком-либо другом хосте, отличном от хоста сервера, обычно вы не можете использовать SELECT ... INTO OUTFILE, поскольку нет способа записать путь к файлу относительно файловой системы хоста сервера.

Это означает, что вы можете выгрузить файл в определенное место, если ваши php и mysql находятся на одном и том же локальном компьютере, а затем переместить файл в лучшее место или обслуживать его напрямую, как readfile()

Это правда, что это невозможно будет использовать, если БД и веб-серверы находятся на разных компьютерах.Зависит от того, что вы намереваетесь, теоретически вы можете использовать mysql -e "SELECT ..." > file_name через системный вызов () для создания файла локально, но он также не универсален.

0 голосов
/ 20 апреля 2011

Каталог «temp» позволяет осуществлять запись практически на всех хостинг-провайдеров. Одним из решений является запись в «/ tmp» (Linux) или% TEMP% (Windows).

Как только это будет сделано, PHP-скрипт может передать этот файл клиенту и удалить после завершения потоковой передачи.

...