通过php调用批处理文件备份mysql数据库
我之前使用mysqldump方法失败。现在我尝试调用批处理文件,该批处理文件将调用mysqldump。 调用批处理文件的php文件如下所示:通过php调用批处理文件备份mysql数据库,php,mysql,Php,Mysql,我之前使用mysqldump方法失败。现在我尝试调用批处理文件,该批处理文件将调用mysqldump。 调用批处理文件的php文件如下所示: <?php shell_exec('c:\\abc.bat'); ?> 但是当我使用php执行它时,我得到一个0 Kb的文件,我想知道为什么。我试过shell_exec和exec。参数有问题吗? 内容如下: 我在使用PHP时遇到了问题 exec执行任何批处理的命令 文件执行其他命令 (即“dir”)工作正常)。但是如果我 执行了批处理文件,
<?php
shell_exec('c:\\abc.bat');
?>
但是当我使用php执行它时,我得到一个0 Kb的文件,我想知道为什么。我试过shell_exec和exec。参数有问题吗?
内容如下:
我在使用PHP时遇到了问题
exec
执行任何批处理的命令
文件执行其他命令
(即“dir”)工作正常)。但是如果我
执行了批处理文件,我没有收到
exec
命令的输出
我的服务器设置包括
Windows Server 2003服务器正在运行
IIS6和PHP 5.2.3。在这个服务器上,我
拥有:
c:\windows\system32\cmd.exe
c:\cygwin\bin
目录的完全控制权
以及它的内容%systemroot%\system32
位于
系统路径cmd.exe
的完整路径
exec
调用
当我打电话时:
$output = exec("c:\\windows\\system32\\cmd.exe /c $batchFileToRun");
然后一切顺利。在我的
在这种情况下,$batchFileToRun
是
批处理文件的实际系统路径
(即,调用
realpath()
)
请不要只是粘贴答案的链接。如果你想这样做,考虑一下他们的意见。如果远程站点消失或暂时不可用,请在上面加上一些词,总结或引用所提供的链接,使答案更有价值。如果php.net消失,愿上帝怜悯我们的灵魂。@Dampe我至少有一次这样的情况发生过。net关闭,提供的链接有一段时间不起作用,这让OP感到疑惑。当然,提供到镜子的链接修复了这一问题,但无论如何,戈登引用有意义的部分(足够有意义)在大多数情况下是侵犯版权的。就PHP手册而言,它是在CC属性许可证下提供的,因此只有在属性许可的情况下才允许复制。从未发布许可证的网页复制是完全非法的。但在这种情况下并非如此,因为它来自于评论。有很多方法可以剥这只猫的皮。我花了2秒钟的时间在文档中的“bat”上查找,结果如何。叫我谷歌。
$output = exec("c:\\windows\\system32\\cmd.exe /c $batchFileToRun");