1
我想做一个mysql转储,当数据库密码有“(”或“)”或“& “ 在里面。可能还有更多,但直到现在我已经用这些角色进行了测试。 我的脚本是:phpmysql转储不工作,如果密码有“(”或“)”或“&”
$un = "user_name_here";
$pass = "gTbK5AQ)iuT";
$hn = "localhost";
$dbn = "database_name_here";
$exp = "export_path_here";
$output = array();
exec("mysqldump --user=$un --password=$pass --host=$hn $dbn > $exp", $output, $worked);
如果$通有脚本不工作“),”在里面。当我从密码中删除“)”时,转储工作正常,并按照我的需要以sql格式导出数据库。 我在做什么错误或密码不应该有这些字符?
不是。但是想一想,如果从命令行输入这些字符,命令行中的这些字符将会执行什么操作。 shell正在处理这些字符 – RiggsFolly
引用密码值:'exec(“mysqldump --user = $ un --password = \”$ pass \“--host = $ hn $ dbn> $ exp”,$ output ,$工作);' –
只要把整个命令用单引号 – fafl