以下是我的总代码。我已经逃脱了反斜杠并完成了所有我认为应该是正确的。
<?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文件!怎么了 ?!我尝试了所有选择!
答案 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添加了引号,以防它们中有空格和备份文件,也可能包含空格。
您可以进一步修改此选项以满足您的需求。