1

私はphpを介してデータベースのmysqldumpを取得しようとしています.この方法でのみコマンドラインを介してデータベースダンプを取得できます.

d:
cd "d:\wamp\bin\mysql\mysql5.5.24\bin"
mysqldump.exe
mysqldump --user=user --password=password --host=localhost db_name > "D:\dump\test.sql"

この方法で php からこのコマンドを実行しようとすると、空のダンプ ファイルが生成されます。

$cmd  = 'd: cd "d:/wamp/bin/mysql/mysql5.5.24/bin"mysqldump.exe>mysqldump --user=user --password=password --host=localhost db_name > "D:\dump\test.sql"';
exec($cmd);

またはこの方法

$cmd  = 'd:/wamp/bin/mysql/mysql5.5.24/bin>mysqldump.exe>mysqldump --user=user --password=password --host=localhost db_name > D:\dump\test.sql';
exec($cmd);

またはこの方法

$cmd  = 'd:/wamp/bin/mysql/mysql5.5.24/bin>mysqldump --user=user --password=password --host=localhost db_name > D:\dump\test.sql';
exec($cmd);

空のダンプ ファイルしか取得できません。私はここでこのような多くの質問をしてきましたがその解決策はどれもうまくいきません。

それを行うための可能な方法を見て、提案してください。

ありがとう。

4

1 に答える 1

4

Windowsを使用しているようですが、マルチコマンドラインを作成する方法は「&」演算子を使用することです(詳細

例 :

$cmd  = 'd: & cd "d:/wamp/bin/mysql/mysql5.5.24/bin" & mysqldump.exe --user=user --password=password --host=localhost db_name > "D:\dump\test.sql"';
exec($cmd);

また、使用しているのでパスを再確認してください。d:/wamp/...後でD:\dump\test.sql、コマンドはスラッシュとアンチスラッシュを使用しているようで、機能する\はずです。

最後に、execの2番目の引数を使用してコマンドをデバッグできます。

$output = array();
exec($cmd, $output);
var_dump($output);
于 2012-11-24T08:36:58.630 に答える