您好,欢迎访问一九零五行业门户网

php 数据库在线备份代码

php 数据库在线备份代码
function sqldumptable($table, $fp=0) {
  $tabledump = drop table if exists $table;n;
  $tabledump .= create table $table (n;
  $firstfield=1;
  $fields = mysql_query(show fields from $table);
  while ($field = mysql_fetch_array($fields)) {
   if (!$firstfield) {
    $tabledump .= ,n;
   } else {
    $firstfield=0;
   }
   $tabledump .=    $field[field] $field[type];
   if (!empty($field[default])) {
    $tabledump .= default '$field[default]';
   }
   if ($field['null'] != yes) {
    $tabledump .= not null;
   }
   if ($field['extra'] != ) {
    $tabledump .= $field[extra];
   }
  }
  mysql_free_result($fields);
$keys = mysql_query(show keys from $table);
  while ($key = mysql_fetch_array($keys)) {
   $kname=$key['key_name'];
   if ($kname != primary and $key['non_unique'] == 0) {
    $kname=unique|$kname;
   }
   if(!is_array($index[$kname])) {
    $index[$kname] = array();
   }
   $index[$kname][] = $key['column_name'];
  }
  mysql_free_result($keys);
  while(list($kname, $columns) = @each($index)) {
   $tabledump .= ,n;
   $colnames=implode($columns,,);
   if ($kname == primary) {
    $tabledump .=    primary key ($colnames);
   } else {
    if (substr($kname,0,6) == unique) {
     $kname=substr($kname,7);
    }
    $tabledump .=    key $kname ($colnames);
   }
  }
  $tabledump .= n);nn;
  if ($fp) {
   fwrite($fp,$tabledump);
  } else {
   echo $tabledump;
  }
  $rows = mysql_query(select * from $table);
  $numfields = mysql_num_fields($rows);
  while ($row = mysql_fetch_array($rows)) {
   $tabledump = insert into $table values(;
   $fieldcounter=-1;
   $firstfield=1;
   while (++$fieldcounter    if (!$firstfield) {
     $tabledump.=, ;
    } else {
     $firstfield=0;
    }
    if (!isset($row[$fieldcounter])) {
     $tabledump .= null;
    } else {
     $tabledump .= '.mysql_escape_string($row[$fieldcounter]).';
    }
   }
   $tabledump .= );n;
   if ($fp) {
    fwrite($fp,$tabledump);
   } else {
    echo $tabledump;
   }
  }
  mysql_free_result($rows);
 }
@mysql_connect($servername,$dbusername,$dbpassword) or die(数据库连接失败);
 @mysql_select_db($dbname) or die(选择数据库失败); 
 $table = array_flip($_post['table']);
 $result = mysql_query(show tables);
 echo ($result) ? null : 出错: .mysql_error();
 $filename = basename($_server['http_host']._mysql.sql);
 header('content-type: application/unknown');
 header('content-disposition: attachment; filename='.$filename);
 $mysqldata = '';
 while ($currow = mysql_fetch_array($result)) {
  if (isset($table[$currow[0]])) {
   $mysqldata.= sqldumptable($currow[0]);
   $mysqldata.= $mysqldata.rn;
  }
 }
 mysql_close();
 exit;
其它类似信息

推荐信息