0

以下是我现在的总代码。我已经逃脱了反斜杠并做了所有我认为应该正确的事情。

<?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 文件!怎么了 ?!我已经尝试了所有选项!

4

1 回答 1

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。还为用户和通行证添加了引号,以防它们中有空格,并为备份文件添加了引号,其中也可能包含空格。

您可以进一步修改它以满足您的需要。

于 2012-10-25T17:28:10.130 回答