PHP如何备份和还原MYSQL数据库?
另外,PHP如何把一个文件从一个地方复制到另一个地方?能给我举个例子吗?
多谢

解决方案 »

  1.   

    移动文件
    rename -- 重命名一个文件或目bool rename ( string oldname, string newname [, resource context] )
    尝试把 oldname 重命名为 newname。 如果成功则返回 TRUE,失败则返回 FALSE。 手册:<?php
    rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
    ?> 备份数据库
    <?php
    ini_set("max_execution_time","600");
    $host="localhost";          
    $user="root";       
    $password="test123";         
    $dbname="dkp";  
    mysql_connect($host,$user,$password);
    mysql_select_db($dbname); 
    mysql_query("set names gb2312");      
    $mysql= "set names gb2312;\r\n";  
    $q1=mysql_query("show tables");            
    while($t=mysql_fetch_array($q1)){       
        $table=$t[0];       
        $q2=mysql_query("show create table `$table`");            
        $sql=mysql_fetch_array($q2);        
        $mysql.=$sql['Create Table'].";\r\n\r\n"; //先备份表结构     
          
        $q3=mysql_query("select * from `$table`");//再备份表数据       
        while($data=mysql_fetch_assoc($q3)){      //mysql_fetch_accoc只获得关联数组 不好含数字索引
            $keys=array_keys($data);              //以数组的形式返回数组中的数字或者字符串的键名
            $keys=array_map('addslashes',$keys);  //将回调函数作用到给定数组的单元上    
            $keys=join("`,`",$keys);              //join implode的别名 把数组用`,`分隔成字符串
            $keys="`".$keys."`";                  //字符串头尾加上``
            $vals=array_values($data);            //单单返回$data数组中所有的值
            $vals=array_map('addslashes',$vals);    
            $vals=join("','",$vals);   //这个地方用``号咋要报错呢要用''哈
            $vals="'".$vals."'";       
            $mysql.="insert into `$table`($keys) values($vals);\r\n";       
        }       
        $mysql.="\r\n";                    
    }       
    $filename=date('Ymj').".sql";          
    $fp = fopen($filename,'w');          
    fputs($fp,$mysql);            
    fclose($fp);     
    echo "<script>window.location.href='./$filename'</script>";
    ?>还原就不说了