今天用PHP来执行mysql dump程序,测试了一下,在PHP5.3的Windows机器上成功,但在PHP5.2的Windows机器上得到如下错误
'C:\Program' 不是内部或外部命令,也不是可运行的程序或批处理文件。
<?php
$cmd = '"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe" -u..';
exec ( $cmd );
?> 修改成以下代码后,在PHP5.2的Windows机器上能运行了,但在PHP5.3的Windows机器却报错了
<?php
$cmd = '""C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe" -u.."';
exec ( $cmd );
?> 终极版解决方法,通过判断PHP的版本解决该问题
<?php
$cmd = '"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump.exe" -u..';
if( PHP_OS=='WINNT' && version_compare(PHP_VERSION, '5.3.0', '<') ){
$cmd = '"'.$cmd.'"';
}
exec ( $cmd );
?>
Ferris