在PHP数据库备份脚本中编码和转义
问题描述:
我尝试了很多脚本来备份我的mySQL数据库,但它们全部失败。
phpMyAdmin是唯一一个可以像我应该那样转义我的字符串的程序。
这里有什么问题?在PHP数据库备份脚本中编码和转义
在我的数据库中的一些字符串中,我有像“é”等国际字符。 phpMyAdmin转储也显示我也像“\ r \ n”,似乎打破脚本的东西。
这是一个编码问题?我的数据库中是否应该没有“é”?
所有这些编码,转义是高于我的头,我一直在努力与此。 我只想让我的数据库中的所有人都可读,并且可以在浏览器中解析人类可读的内容。为什么这很难?
我尝试将所有内容设置为UTF-8,但是当我使用json_encode()发送内容时,我在数据库中包含了所有这些内容。
我发现了一个文档片断是去链接是:
$tableName = 'albums';
$backupFile = 'albums.sql';
$query = "SELECT * INTO OUTFILE '$backupFile' FROM '$tableName'";
$result = mysql_query($query);
if (!$sql_res) {
echo "error";
}
浏览器输出“错误”
答
,如果您有命令行访问和安装mysqldump的(我认为的MySQL的大多数安装的话)然后只需运行
mysqldump [database-name] -u[username] =p'[password]' > db_backup.sql
答
尝试这个:
$tableName = 'albums';
$backupFile = 'albums.sql';
$query = "SELECT * FROM {$tableName} INTO OUTFILE '{$backupFile}'";
$result = mysql_query($query);
if (!$result) {
echo "error";
}
我想你确信你的mysql连接是正确组建的,并且db被选中了。
您使用哪个PHP模块? PDO,MySQL或mysqli? – stillstanding 2010-11-19 16:43:27
呃,mysql。甚至不知道别人是什么。 – FFish 2010-11-19 17:07:33
SQL代码中有一个错误,它应该是:SELECT * FROM'$ tableName'INTO OUTFILE'$ backupFile';并且你的错误检查看一个不存在的变量,所以它总是假的 – Patrick 2010-11-19 17:31:53