PHP数据库备份脚本中的编码和转义
我尝试了很多脚本来备份mySQL数据库,但都失败了。PHP数据库备份脚本中的编码和转义,php,mysql,encoding,Php,Mysql,Encoding,我尝试了很多脚本来备份mySQL数据库,但都失败了。 phpMyAdmin是唯一一个像它应该做的那样逃逸字符串的程序。 这里怎么了 在我数据库中的一些字符串中,我使用了诸如“é”等国际字符。 phpMyAdmin转储还向我显示了类似“\r\n”的内容,这些内容似乎破坏了脚本 这是编码问题吗?我应该首先在数据库中没有“é”吗? 所有这些编码、逃避都是我无法想象的,我一直在为此而挣扎。 我只希望数据库中的所有内容都是可读的,浏览器中的所有内容都是可读的。为什么这么难? 我尝试将所有内容都设置为UTF
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";
}
如果您具有命令行访问权限并安装了mysqldump(我相信大多数mysql安装都安装了),那么浏览器将输出“error”,然后运行
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?呃,mysql。甚至不知道其他的是什么..SQL代码中有一个错误,应该是:从“$tableName”选择*到OUTFILE“$backupFile”;您对错误的检查查看的是一个不存在的变量,因此它总是错误的。我想用PHP编写备份,而不是用命令行then exec(“mysqldump[database name]-u[username]=p'[password]'>db_backup.sql”);我想另一种方法是选择表中的所有内容,将所有内容转储到数组中,然后序列化它。这并不漂亮,可能会占用大量内存,但应该可以