2010-11-19 5 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

eh、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 '[パスワード]'> 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接続が適切に形成され、そのデータベースが正常に選択されたと確信していると思います。

関連する問題