mysqldump生成空文件

时间:2012-10-25 17:20:20

标签: php mysqldump

以下是我的总代码。我已经逃脱了反斜杠并完成了所有我认为应该是正确的。

<?php

include('conn.php');

mysql_select_db("landshop_formdata");

$dbname="landshop_clientdata";
$dbhost="localhost";
$dbuser="landshop_anitgop";
$dbpass="password";
//$root = realpath($_SERVER["DOCUMENT_ROOT"]);
$backupFile =$dbname.".sql";
echo $backupFile."<br><br>";


//$dmp="C:\\Program Files\\EasyPHP-5.3.8.1\\mysql\\bin\\mysqldump.exe";

//$command = "$dmp --OPT -h$dbhost -u$dbuser -p$dbpass $dbname > $backupFile";

//system($command);


$dmp = '"C:\Program Files\EasyPHP-5.3.8.1\mysql\bin\mysqldump.exe"';

$command = $dmp
     . ' --opt -h '.$dbhost.' -u "'. $dbuser. '" -p "'. $dbpass.'" '. $dbname.' > "'. $backupFile. '"';
system($command);


?>

它仍在生成0kb文件!怎么了 ?!我尝试了所有选择!

1 个答案:

答案 0 :(得分:1)

试试这个:

$dmp = '"C:\Program Files\EasyPHP-5.3.8.1\mysql\bin\mysqldump.exe"';

$command = $dmp
         . ' --opt -h '
         . $dbhost
         . ' -u "'
         . $dbuser
         . '" -p "'
         . $dbpass
         . ' '
         . $dbname
         . ' > "'
         . $backupFile
         . '"';
system($command);

我在初始$dmp变量上添加了引号,以确保命令为mysqldump正确执行(由于空格)。还为user和pass添加了引号,以防它们中有空格和备份文件,也可能包含空格。

您可以进一步修改此选项以满足您的需求。