Home > php教程 > PHP源码 > PHP backup database to SQL file

PHP backup database to SQL file

大家讲道理
Release: 2016-11-09 14:55:56
Original
1056 people have browsed it

<!?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;       
?>
Copy after login

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template