PHP - mysql 转储不适用于密码中的符号

PHP - mysql dump doesn't work with symbol in password

我在 php

中尝试了 mysqldump
shell_exec("mysqldump --user=$username --password=$password --host=$host $database > dump.sql");

如果密码很简单,工作正常。但是当密码中有一个符号 & 在我的例子中,它不起作用。知道为什么,或者如何解决这个问题吗?

简短的回答可能是不要在密码中加入符号。但这不是我正在寻找的答案,而且一些数据库密码超出了我的范围。所以我需要一个解决方案或解决方法。

使用引号有效。感谢+Mubin

 shell_exec("mysqldump --user='$username' --password='$password' --host=$host $databaseName > dump.sql");

鉴于您使用的是一些未知输入,我会使用 escapeshellcmd,它应该能够处理所有事情(包括密码中的 ')。