Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数据库备份脚本中的编码和转义_Php_Mysql_Encoding - Fatal编程技术网

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

PHP数据库备份脚本中的编码和转义,php,mysql,encoding,Php,Mysql,Encoding,我尝试了很多脚本来备份mySQL数据库,但都失败了。 phpMyAdmin是唯一一个像它应该做的那样逃逸字符串的程序。 这里怎么了 在我数据库中的一些字符串中,我使用了诸如“é”等国际字符。 phpMyAdmin转储还向我显示了类似“\r\n”的内容,这些内容似乎破坏了脚本 这是编码问题吗?我应该首先在数据库中没有“é”吗? 所有这些编码、逃避都是我无法想象的,我一直在为此而挣扎。 我只希望数据库中的所有内容都是可读的,浏览器中的所有内容都是可读的。为什么这么难? 我尝试将所有内容都设置为UTF

我尝试了很多脚本来备份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";
}

如果您具有命令行访问权限并安装了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”);我想另一种方法是选择表中的所有内容,将所有内容转储到数组中,然后序列化它。这并不漂亮,可能会占用大量内存,但应该可以