dquh37673 2012-11-24 00: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 00: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);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部