首页 > 数据库 > MySQL > 正文

如何用PHP的页面备份、恢复Mysql数据库中的数据表

2024-07-24 12:56:34
字体:
来源:转载
供稿:网友
<?        
  //备份数据  
    $i   =   0;  
    $crlf="/r/n";  
    $dbname="xgtqr";  
    global     $dbconn;  
    $dbconn   =   mysql_connect("localhost","root","root");  
    $db   =   mysql_select_db("xgtqr",$dbconn);  
    $tables   =   mysql_list_tables("xgtqr",$dbconn);  
    $num_tables   =   @mysql_numrows($tables);  
          while($i   <   $num_tables)  
          {    
                  $table   =   mysql_tablename($tables,   $i);  
   
                  print   $crlf;  
                  print   $crlf;  
   
                  echo   get_table_def($dbname,   $table,   $crlf).";$crlf$crlf";  
                  echo   get_table_content($dbname,   $table,   $crlf);  
                  $i++;  
          }  
   
  //定义抽取表结构与数据  
   
   
  function   get_table_def($db,   $table,   $crlf)  
  {  
          global   $drop;  
   
          $schema_create   =   "";  
          if(!empty($drop))  
                  $schema_create   .=   "drop   table   if   exists   $table;$crlf";  
   
          $schema_create   .=   "create   table   $table   ($crlf";  
          $result   =   mysql_db_query($db,   "show   fields   from   $table");  
          while($row   =   mysql_fetch_array($result))  
          {  
                  $schema_create   .=   "       $row[field]   $row[type]";  
   
                  if(isset($row["default"])   &&   (!empty($row["default"])   ||   $row["default"]   ==   "0"))  
                          $schema_create   .=   "   default   '$row[default]'";  
                  if($row["null"]   !=   "yes")  
                          $schema_create   .=   "   not   null";  
                  if($row["extra"]   !=   "")  
                          $schema_create   .=   "   $row[extra]";  
                  $schema_create   .=   ",$crlf";  
          }  
          $schema_create   =   ereg_replace(",".$crlf."$",   "",   $schema_create);  
          $result   =   mysql_db_query($db,   "show   keys   from   $table");  
          while($row   =   mysql_fetch_array($result))  
          {  
                  $kname=$row['key_name'];  
                  if(($kname   !=   "primary")   &&   ($row['non_unique']   ==   0))  
                          $kname="unique|$kname";  
                    if(!isset($index[$kname]))  
                            $index[$kname]   =   array();  
                    $index[$kname][]   =   $row['column_name'];  
          }  
   
          while(list($x,   $columns)   =   @each($index))  
          {  
                    $schema_create   .=   ",$crlf";  
                    if($x   ==   "primary")  
                            $schema_create   .=   "       primary   key   ("   .   implode($columns,   ",   ")   .   ")";  
                    elseif   (substr($x,0,6)   ==   "unique")  
                          $schema_create   .=   "       unique   ".substr($x,7)."   ("   .   implode($columns,   ",   ")   .   ")";  
                    else  
                          $schema_create   .=   "       key   $x   ("   .   implode($columns,   ",   ")   .   ")";  
          }  
   
          $schema_create   .=   "$crlf)";  
          return   (stripslashes($schema_create));  
  }  
   
  //保存数据表的值  
  function   get_table_content($db,   $table,   $crlf)  
  {  
          $schema_create   =   "";  
          $temp   =   "";  
          $result   =   mysql_db_query($db,   "select   *   from   $table");  
          $i   =   0;  
          while($row   =   mysql_fetch_row($result))  
          {  
                  $schema_insert   =   "insert   into   $table   values   (";  
                  for($j=0;   $j<mysql_num_fields($result);$j++)  
                  {  
                          if(!isset($row[$j]))  
                                  $schema_insert   .=   "   null,";  
                          elseif($row[$j]   !=   "")  
                                  $schema_insert   .=   "   '".addslashes($row[$j])."',";  
                          else  
                                  $schema_insert   .=   "   '',";  
                  }  
                  $schema_insert   =   ereg_replace(",$",   "",   $schema_insert);  
                  $schema_insert   .=   ");$crlf";  
                  $temp   =   $temp.$schema_insert   ;  
                  $i++;  
          }  
          return   $temp;  
  }  
  ?>  
联系qq:31443433
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表