简体   繁体   中英

mysqldump not working through 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.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM