PHP数据库备份脚本中的编码和转义

时间:2010-11-19 16:38:18

标签: php mysql encoding

我尝试了很多脚本来备份我的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 :(得分:0)

如果你有命令行访问并安装了mysqldump(我相信大多数mysql的安装都有),那么就运行

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

reference

答案 1 :(得分:0)

试试这个:

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

我想您确信您的mysql连接已正确形成并且数据库已被选中。