кодирование и экранирование в сценариях резервного копирования базы данных PHP - PullRequest
0 голосов
/ 19 ноября 2010

Я перепробовал множество сценариев для резервного копирования базы данных mySQL, но все они не работают ..
phpMyAdmin - единственный, который экранирует мои строки так, как должен.
Что здесь не так?

В некоторых строках в моей базе данных есть международные символы, такие как "é" и т. Д. Дамп phpMyAdmin также показывает мне такие вещи, как "\ r \ n", которые, кажется, нарушают работу сценариев.

Это проблема кодирования? Разве я не должен иметь "é" в моей базе данных в первую очередь?
Вся эта кодировка, экранирование находится над моей головой, я всегда борюсь с этим. Я просто хочу, чтобы все читаемое человеком в моей базе данных и читаемое человеком в браузере. Почему это так сложно?
Я пытаюсь установить все в UTF-8, но когда я отправляю вещи, как с помощью json_encode (), у меня все это \ u00e9 \ в базе данных.

Я нашел отрывок, который идет по ссылке:

$tableName  = 'albums';
$backupFile = 'albums.sql';
$query      = "SELECT * INTO OUTFILE '$backupFile' FROM '$tableName'";
$result     = mysql_query($query);
if (!$sql_res) { 
    echo "error";
}

браузер выводит "ошибку"

Ответы [ 2 ]

0 голосов
/ 19 ноября 2010

Попробуйте это:

$tableName  = 'albums';
$backupFile = 'albums.sql';
$query      = "SELECT * FROM {$tableName} INTO OUTFILE '{$backupFile}'";
$result     = mysql_query($query);
if (!$result) { 
    echo "error";
}

Полагаю, вы уверены, что ваше mysql-соединение было правильно сформировано и что db был выбран нормально.

0 голосов
/ 19 ноября 2010

если у вас есть доступ к командной строке и у вас установлен mysqldump (я полагаю, что большинство установок mysql его имеют), тогда просто запустите

mysqldump [database-name] -u[username] =p'[password]' > db_backup.sql

reference

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