2010-11-19 3 views
0

mySQL 데이터베이스를 백업하기 위해 많은 스크립트를 시도했지만 모두 실패합니다.
phpMyAdmin은 내 문자열을 이스케이프 처리해야하는 유일한 스크립트입니다.
무엇이 잘못 되었나요?PHP 데이터베이스 백업 스크립트에서 인코딩 및 이스케이프 처리

내 데이터베이스의 일부 문자열에는 "é"등과 같은 국제 문자가 있습니다. 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"; 
} 

브라우저 출력 "오류"당신이 명령 줄 액세스 권한이 mysqldump를 설치 한 경우

+0

PHP 모듈을 사용하고 있습니까? PDO, mysql 또는 mysqli? – stillstanding

+0

어, mysql. 다른 사람들이 무엇인지 모른다 ... – FFish

+1

SQL 코드에 오류가있다 : SELECT * FROM '$ tableName'INTO OUTFILE '$ backupFile'; 그리고 오류 검사는 존재하지 않는 변수를 조사하므로 항상 거짓이됩니다. – Patrick

답변

0

(나는 MySQL은 대부분의 설치는 그것을 믿습니다) 그럼 그냥

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

reference

+0

PHP로 백업을 쓰고 싶습니다. 명령 줄이 아니라 – FFish

+0

입니다. 그런 다음 exec ("mysqldump [database-name] -u [username ] = p '[password]'> db_backup.sql "); –

+0

뿐만 아니라, 그냥 빈 페이지를 시도했다. – FFish

0

시도를 실행 이 :

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

mysql 연결이 제대로 구성되어 있고 db가 ok로 선택되었다고 가정합니다.

관련 문제