>  기사  >  php教程  >  PHP 백업 데이터베이스를 SQL 파일로

PHP 백업 데이터베이스를 SQL 파일로

大家讲道理
大家讲道理원래의
2016-11-09 14:55:56970검색

<!?php  
    
/******   备份数据库结构 ******/
      
      /* 
      函数名称:table2sql() 
      函数功能:把表的结构转换成为SQL 
      函数参数:$table: 要进行提取的表名 
      返 回 值:返回提取后的结果,SQL集合 
      函数作者:heiyeluren 
      */
      
     function table2sql($table)  
      {  
          global $db;  
         $tabledump = "DROP TABLE IF EXISTS $table;\n";  
         $createtable = $db--->query("SHOW CREATE TABLE $table");  
         $create = $db->fetch_row($createtable);  
         $tabledump .= $create[1].";\n\n";  
          return $tabledump;  
      }  
      
      
     /****** 备份数据库结构和所有数据 ******/
      /* 
      函数名称:data2sql() 
      函数功能:把表的结构和数据转换成为SQL 
      函数参数:$table: 要进行提取的表名 
      返 回 值:返回提取后的结果,SQL集合 
      函数作者:heiyeluren 
      */
     function data2sql($table)  
      {  
          global $db;  
         $tabledump = "DROP TABLE IF EXISTS $table;\n";  
         $createtable = $db->query("SHOW CREATE TABLE $table");  
         $create = $db->fetch_row($createtable);  
         $tabledump .= $create[1].";\n\n";  
      
         $rows = $db->query("SELECT * FROM $table");  
         $numfields = $db->num_fields($rows);  
         $numrows = $db->num_rows($rows);  
          while ($row = $db->fetch_row($rows))  
          {  
             $comma = "";  
             $tabledump .= "INSERT INTO $table VALUES(";  
              for($i = 0; $i < $numfields; $i++)  
              {  
                 $tabledump .= $comma."&#39;".mysql_escape_string($row[$i])."&#39;";  
                 $comma = ",";  
              }  
             $tabledump .= ");\n";  
          }  
         $tabledump .= "\n";  
      
          return $tabledump;  
      }  
?>  
    
<!--?php       
$host="localhost"; //主机名       
$user="root"; //MYSQL用户名       
$password="root"; //密码       
$dbname="dedecmsv4"; //备份的数据库       
       
mysql_connect($host,$user,$password);       
mysql_select_db($dbname);       
       
$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[&#39;Create Table&#39;].";\r\n\r\n";#DDL       
       
$q3=mysql_query("select * from `$table`");       
while($data=mysql_fetch_assoc($q3))       
{       
$keys=array_keys($data);       
$keys=array_map(&#39;addslashes&#39;,$keys);       
$keys=join(&#39;`,`&#39;,$keys);       
$keys="`".$keys."`";       
$vals=array_values($data);       
$vals=array_map(&#39;addslashes&#39;,$vals);       
$vals=join("&#39;,&#39;",$vals);       
$vals="&#39;".$vals."&#39;";       
       
$mysql.="insert into `$table`($keys) values($vals);\r\n";       
}       
$mysql.="\r\n";       
       
}       
$filename=date(&#39;Ymd&#39;)."_".$dbname.".sql"; //文件名为当天的日期       
$fp = fopen($filename,&#39;w&#39;);       
fputs($fp,$mysql);       
fclose($fp);       
echo "数据备份成功,生成备份文件".$filename;       
?>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.