Translate

2015年12月14日月曜日

XAMPP環境でPHPからmysqlにmysqldumpコマンドを打つときにはまったこと

データベースの内容をバックアップするボタンを作ろうと、こんなスクリプトを書いた。

$id = "root";
$pwd = "password";
$db = "myDB";
passthru('mysqldump '.$db.' -u '.$id.' -p'.$pwd.' >./tmp/test.sql ');

・・・が、うまく行かない。空のsqlが書き出される。
色々調べた結果、stackoverflowで同じような質問があったので解決
xamppを使用の場合、

passthru('c:\xampp\mysql\bin\mysqldump '.$db.' -u '.$id.' -p'.$pwd.' >./tmp/test.sql ');
とすればよい。ローカルのインストールしたパスを参照させないといけない。

同様に、バックアップから復帰させるときは

passthru('c:\xampp\mysql\bin\mysql '.$db.' -u"'.$id.'" -p"'.$pwd.'" <./tmp/test.sql ');
とする。

0 件のコメント:

コメントを投稿