Ich versuche, einen MySQL-Dump zu tun und ich habe Probleme, wenn das Datenbankpasswort entweder "(" oder ")" oder "& " drin. Es kann mehr geben, aber bis jetzt habe ich mit diesen Charakteren getestet. Mein Skript ist:phpmysql Dump funktioniert nicht, wenn das Passwort "(" oder ")" oder "&"
$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);
Das Skript funktioniert nicht, wenn der $ Pass hat ")" in ihm. Wenn ich ")" aus dem Passwort entferne, dann funktioniert der Dump einwandfrei und exportiert die Datenbank im SQL-Format wie ich will. Gibt es einen Fehler, den ich mache oder das Passwort sollte diese Zeichen nicht haben?
Nein. Aber darüber nachdenken, was diese Zeichen in einer Befehlszeile platziert würde tun würde, wenn Sie sie von der Befehlszeile aus eingegeben. Die Shell tut etwas mit diesen Zeichen – RiggsFolly
Zitiere das Passwort Wert: 'exec (" mysqldump --user = $ un --password = \ "$ pass \" --host = $ hn $ dbn> $ exp ", $ output , $ arbeitete); ' –
Einfach den gesamten Befehl in einfache Anführungszeichen setzen – fafl