2012-01-31 49 views
0

我正在试图将名为Reservebox的MySQL数据库备份到.gzip文件。我从教程中获得了该脚本,并根据我的值更改了这些值。问题是,当我点击提交什么都没有发生。我不知道我去了哪里。MySQL备份不起作用

<form id="form1" name="form1" method="post" action="backup.php"> 
    <input type="submit" name="Backup" id="Backup" value="Backup" /> 
</form> 

<p>&nbsp;</p> 

<?php 
    include ("functions_cp/f_connection.php"); 
    Sqlconnection(); 

    $dbname = "Reservebox"; 
    $dbhost = "localhost"; 
    $dbuser = "root"; 
    $dbpass = "123"; 

    function backup() { 
     $backupFile = $dbname . date("Y-m-d-H-i-s") . '.gz'; 
     $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass $dbname | gzip > $backupFile"; 
     system($command); 
    } 
    if(isset($_POST['backup'])) { 
     backup(); 
    } 
+0

为什么不使用PHPMyAdmin进行备份?它超级简单! – 2012-01-31 22:30:33

+0

检查日志。也许你的PHP配置不允许使用系统 – Alfabravo 2012-01-31 22:30:41

+0

我知道谁给我-1,但是OK! ,@ sh4nx0r我需要学习如何!我知道我可以使用PHPMYADMIN :) – 2012-01-31 22:32:24

回答

1

if(isset($_POST['backup'])) { 我认为这条线上的备份需要大写B!

如果不能对其进行排序,请尝试在<?php之后的新行上添加error_reporting(E_ALL);

+0

后,我添加了error_reporting,它给了我这个“注意:未定义的变量:dbname,和所有其他变量具有相同的消息,我把它们都放在函数'备份',错误消失了但也没有什么反应agains,它似乎是当我点击按钮的东西加载了一下,但没有文件下载。 – 2012-01-31 22:47:17

+1

通知是好的。您向我们显示的代码不显示文件是要返回。它会写一个.gz文件到文件系统,你应该去找:) – jon 2012-01-31 22:54:01

+0

我改变了类型为.sql,它工作,但是我生成的文件是空的,有什么建议吗? – 2012-01-31 23:07:49

1

尝试-p$dbpass之间取出的空间。

此外,删除--opt。这不是绝对必要的。

+0

它没有工作,谢谢:) – 2012-01-31 22:37:14