PHP - mysql转储不能与密码中的符号一起使用

PHP  -  mysql转储不能与密码中的符号一起使用

问题描述:

I tried the mysqldump in php

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

Works fine if password is plain. But when there's a symbol in the password & in my case, it does't work. Any idea why, or how this can be resolved?

Short answer could be don't put symbols in your password. But that's not the answer I'm looking for and some DB passwords are beyond my reach. So I need a solution or a workaround.

我在php中尝试了 mysqldump code> p>

   shell_exec(“mysqldump --user = $ username --password = $ password --host = $ host $ database> dump.sql”); 
  code>  pre> 
 
 如果密码是普通的,则工作正常。 但是当我的密码&  code>中有符号时,它就不起作用了。 知道为什么或如何解决这个问题? p> 
 
 

简短回答可能是不在您的密码中加上符号。 但这不是我正在寻找的答案,而且一些数据库密码是我无法企及的。 所以我需要一个解决方案或解决方法。 p> div>

Using quotes worked. Thanks +Mubin

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

Given that you're using some unknown input, I'd use escapeshellcmd, which should be able to deal with everything (including having a ' in your password).