MySQL, OUTFILE: возможно ли сохранить результат запроса в переменной вместо файла

Я пытаюсь сделать резервную копию записей таблицы с php, Я использую следующий код для получения данных:

 $table_name = "my_table";
$backup_file  = dirname(__FILE__)."/backup/my_table.sql";
$sql = "SELECT * INTO OUTFILE '$backup_file' FROM $table_name";
$retval = mysql_query( $sql, $conn );

Но последняя строка дает следующую ошибку:

Доступ запрещен для пользователя ‘user_name’@’10.1.1.9’ (используя пароль: ДА)

Я изменил разрешение на файл для backup каталог и его файлы для 777, Но такая же ошибка существует.

Теперь я хочу знать, в ВЫБЕРИТЕ * В OUTFILE , Можно ли сохранить данные резервной копии в переменной (вместо файла). Тогда я могу сохранить эту переменную в файл?

0

Решение

Доступ запрещен для пользователя ‘user_name’@’10.1.1.9’ (используя пароль: ДА)

Эта ошибка не для отказа в доступе к файловой системе, а для базы данных.
Вы пытаетесь подключиться к базе данных с пользователем по имени user_name и пароль. И к нему нет доступа (возможно, неправильное имя или пароль?).

Если вы не хотите хранить результат запроса в переменной, вы можете сделать это, удалив INTO OUTFILE часть запроса:

"SELECT * FROM $table_name"

Пока мы на этом, я бы порекомендовал вам прекратить использование mysql_* API предоставляется более старыми версиями PHP. Это плохой и устаревший API, который будет удален в следующих версиях.
Взгляни на mysqli или же PDO вместо.

1

Другие решения

Это немного долго для комментария.

Вы на самом деле не «поддерживаете» стол. Вы просто копируете его содержимое. Если этого достаточно для того, чего вы хотите достичь, просто прочитайте записи по одному и запишите их в файл. Это цикл php.

Проблема, с которой вы сталкиваетесь, заключается в том, что у сервера нет прав доступа к каталогу, в котором находится файл. Возможно, есть способ дать серверу разрешения или использовать общую файловую систему, смонтированную как на сервере, так и на клиентских компьютерах.

«Резервное копирование» и «восстановление» являются понятиями, которые применяются ко всему базы данных и все содержимое в них, включая таблицы, структуры таблиц, ограничения, представления, хранимые процедуры, пользовательские функции, триггеры и так далее. Вы можете прочитать больше о встроенных возможностях Вот.

1