备份数据的PHP代码

2017-01-16 21:29:08

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

 

发表评论:

Powered by PHP 学习者(mail:517730729@qq.com)

原百度博客:http://hi.baidu.com/ssfnadn

备案号:闽ICP备17000564号-1

开源中国 PHPCHINA