0

PHP を使用して MySQL データベースをバックアップしようとしましたが、バックアップのパスを設定すると、スクリプトの実行時に別のパスが表示されます。

これは私のスクリプトです:

$baseDir = 'backup/';
$db;
$table;
$server = $_SERVER['HTTP_HOST'] . substr($_SERVER['SCRIPT_NAME'],0,strrpos($_SERVER['SCRIPT_NAME'],'/'));

これはバックアップ機能内にあります。

global $baseDir;
global $db;
global $server;
$backupFile = $server . "/$baseDir$db/$tab.sql";
$query = mysql_query("SELECT * INTO OUTFILE '$backupFile' FROM $tab");
if(!$query)
    echo "\t" .mysql_error() .PHP_EOL;
else
    echo " backuped." . PHP_EOL;

私が得るパスは次のとおりです。 c:\wamp\bin\mysql\mysql5.1.36\data\localhost\db\backup\contact_keeper\accounts.sqlwith erroCode: 2 (書き込み/作成できません)。

4

1 に答える 1

2

SELECT ... INTO OUTFILE新しいファイルの作成のみに制限されています。セキュリティ対策として、既存のファイルを上書きすることはできません。また、Windows で MySQL を実行しているアカウントに、その...\backup\contact_keeperディレクトリへの書き込み権限があることを確認してください。読み取り/実行のみの場合があります。

于 2010-11-27T13:36:17.600 に答える