doushi1510 2011-05-08 13:12
浏览 51
已采纳

mysqldump通过PHP系统生成一个空白文件()

Before you say there are other questions like this, but none of the answers I've seen worked, so I'm making a fresh question.

I'm trying to use mysqldump via system() with this command:

$backup_path = $_SERVER['DOCUMENT_ROOT'] . '/website/acp/backup/';
$backup_name = $backup_path . $dbname . '.backup.' . date('l.dS.F.Y.g.iA') . '.sql';

$command = 'mysqldump ' . $dbname . ' -u ' . $dbuser . ' -p' . $dbpasswd . ' > ' . $backup_name;

system($command, $returned);

print_r($returned); 

$returned outputs 127 and a blank file with a size of zero KB is located in the backup folder, now when I echo $command and then enter it into Terminal, it works perfectly and generates a full backup of the database. This is the part I don't understand, why is it not working well in the system() call but in Terminal it works just fine?

  • 写回答

3条回答 默认 最新

  • duanshan1977 2011-05-08 13:24
    关注

    This is because when running mysqldump you are required to enter the password, even if you specify it with -p

    This should be helpful : http://www.techiecorner.com/1619/how-to-setup-mysqldump-without-password-in-cronjob/

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

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

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

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

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

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

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

客服 返回
顶部