Php 使用mysql转储备份mysql数据库时获得0 KB大小的文件

Php 使用mysql转储备份mysql数据库时获得0 KB大小的文件,php,mysql,mysqldump,Php,Mysql,Mysqldump,我使用下面的代码来备份我的数据库使用php脚本,但我得到了0KB大小的文件。 如何备份包含所有例程和函数的完整数据库 $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $dbname='mydatabase'; $toDay = date('d-m-Y'); //exec("mysqldump --user=$dbuser --password='$dbpass' --host=$dbhost --single-transaction

我使用下面的代码来备份我的数据库使用php脚本,但我得到了0KB大小的文件。 如何备份包含所有例程和函数的完整数据库

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname='mydatabase';
$toDay = date('d-m-Y');
//exec("mysqldump --user=$dbuser --password='$dbpass' --host=$dbhost --single-transaction $dbname > D:\Sql_Backups/".$toDay."_DB.sql");
//exec('mysqldump --user=$dbuser --password=$dbpass --host=$dbhost $dbname > D:\Sql_Backup/file.sql');
exec ("mysqldump --routines --h $dbhost --u $dbuser --p $dbpass --single-transaction $dbname  > D:\Sql_Backup/db_backup.sql");

有一些建议:
1.强制为mysqldump使用绝对路径。
2.尝试使用--opt(mysqldump的默认选项)。 可参考
3.对于选项,如果使用缩写形式,则不需要有(--)。例:p。使用完整形式时使用(--)。如: --密码。因此,请使用'-p'而不是'-p'(也适用于其他选项)。
4.如果mysqldump无法在“exec”上运行,请尝试“shell\u exec”或“system”。

5.尽量避免在选项和变量之间留空格。例如:-p$dbpass

任何人都可以给我一些建议来解决我的问题。如果使用双引号,Windows路径必须转义反斜杠“\`到“\\”。除此之外,还有什么错误?
echo exec(…
打印什么?您可以通过同一用户的命令行点击该命令吗?
没有管道
STDERR
是吗?您有日志文件吗?@DanFromGermany echo exec(…)没有打印任何内容。并且没有返回任何错误。。您能提供一个示例来说明您的建议吗。@Sumitpatel这是我很久以前在中遇到的问题,关于第2-5点,您可以参考我上面提供的链接。