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 に答える