php生成sql格式的mysql备份

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

php读取数据库生成一条一条的sql语句,可以用作mysql的备份

if (!function_exists('mysql_dump')) {
  
   function mysql_dump($database) {
  
      $query = '';
  
      $tables = @mysql_list_tables($database);
      while ($row = @mysql_fetch_row($tables)) { $table_list[] = $row[0]; }
  
      for ($i = 0; $i < @count($table_list); $i++) {
  
         $results = mysql_query('DESCRIBE ' . $database . '.' . $table_list[$i]);
  
         $query .= 'DROP TABLE IF EXISTS `' . $database . '.' . $table_list[$i] . '`;' . lnbr;
         $query .= lnbr . 'CREATE TABLE `' . $database . '.' . $table_list[$i] . '` (' . lnbr;
  
         $tmp = '';
  
         while ($row = @mysql_fetch_assoc($results)) {
  
            $query .= '`' . $row['Field'] . '` ' . $row['Type'];
  
            if ($row['Null'] != 'YES') { $query .= ' NOT NULL'; }
            if ($row['Default'] != '') { $query .= ' DEFAULT \'' . $row['Default'] . '\''; }
            if ($row['Extra']) { $query .= ' ' . strtoupper($row['Extra']); }
            if ($row['Key'] == 'PRI') { $tmp = 'primary key(' . $row['Field'] . ')'; }
  
            $query .= ','. lnbr;
  
         }
  
         $query .= $tmp . lnbr . ');' . str_repeat(lnbr, 2);
  
         $results = mysql_query('SELECT * FROM ' . $database . '.' . $table_list[$i]);
  
         while ($row = @mysql_fetch_assoc($results)) {
  
            $query .= 'INSERT INTO `' . $database . '.' . $table_list[$i] .'` (';
  
            $data = Array();
  
            while (list($key, $value) = @each($row)) { $data['keys'][] = $key; $data['values'][] = addslashes($value); }
  
            $query .= join($data['keys'], ', ') . ')' . lnbr . 'VALUES (\'' . join($data['values'], '\', \'') . '\');' . lnbr;
  
         }
  
         $query .= str_repeat(lnbr, 2);
  
      }
  
      return $query;
  
   }
  
}

标签: Mysql 数据库

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:iOS的UIWebView用法

下一篇:java读取配置文件