dquh37673 2012-11-24 08:27
浏览 62
已采纳

mysqldump无法通过php工作

I am trying to take mysqldump of database through php, i am able to take database dump through command line this way only.

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"

when trying to execute this command from php this way, i get a empty dump file.

$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);

or this way

$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);

or this way

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

I get only empty dump file. i have gone through a lot of questions here like this, and this and lot more, but none of that solution is working for me.

Please see and suggest any possible way to do it.

Thanks.

  • 写回答

1条回答 默认 最新

  • dongzhentiao2326 2012-11-24 08:36
    关注

    You seems to use Windows, the way to create multi-command lines is to use the '&' operator (more info)

    Example :

    $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);
    

    Also, double-check your paths because you are using d:/wamp/... and later D:\dump\test.sql, it seems that your command use slash and antislash and only \ should work.

    At last, you can debug your command using a second argument to exec :

    $output = array();
    exec($cmd, $output);
    var_dump($output);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?