`

如何从MySQL数据库导出SQL文件

    博客分类:
  • PHP
阅读更多
 来源 http://topic.csdn.net/t/20040726/11/3209900.html
<?   
/*   
    程序功能:mysql数据库备份功能   
    作者:         唐小刚   
    说明:本程序主要是从mysqladmin中提取出来,并作出一定的调整,希望对大家在用php编程时备份数据有定帮助.   
    如果不要备份结构:请屏掉这句://echo   get_table_def($dbname,$table,$crlf).";$crlf$crlf";   
    如果不要备份内容:请屏掉这句:echo   get_table_content($dbname,   $table,   $crlf);   
*/   
            
          header("Content-disposition:   filename=backup.sql");//所保存的文件名   
          header("Content-type:   application/octetstream");   
          header("Pragma:   no-cache");   
          header("Expires:   0");   
            
  //备份数据   
    
    $i   =   0;   
    $crlf="\r\n";   
    $dbname="数据库名";//数据库名   
    global     $dbconn;   
    $dbconn   =   mysql_connect("localhost","用户名","密码");//数据库主机,用户名,密码   
    $db   =   mysql_select_db($dbname,$dbconn);   
    mysql_query("set names utf8"); // The language-code of the database
$tables   =   mysql_list_tables($dbname,$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;   
  }   
  ?>   

 

分享到:
评论

相关推荐

    MYSQL 数据库导入导出命令

    MySQL 数据库导入导出命令是数据库管理员和开发者经常使用的命令,用于将 MySQL 数据库导出到文件中,以便备份、还原或迁移到其他服务器。下面将详细介绍 MySQL 数据库导入导出的命令和方法。 数据库备份 数据库...

    java 从mysql数据库导出数据生成xml文件

    java 从mysql数据库导出数据生成xml文件,新手来的,不喜勿喷

    java实现mysql数据库的表导出到excel文件

    本文将详细讲解如何使用Java实现从MySQL数据库的表导出到Excel文件的过程,以及涉及到的关键技术和工具。 首先,我们需要了解的是Java与数据库交互的基础——JDBC(Java Database Connectivity)。JDBC是Java API,...

    mysql数据库导出设计文档工具_全jar

    "mysql数据库导出设计文档工具_全jar" 提供了一种高效的方式来快速导出MySQL数据库的结构文档,尤其适合在Windows操作系统环境下使用。 这个工具的主要功能是帮助数据库管理员和开发人员生成详细的数据库设计文档,...

    mysql 导入导出 sql文件

    ### MySQL导入导出SQL文件详解 #### 一、概述 MySQL作为一款广泛使用的开源关系型数据库管理系统,在数据管理和维护方面提供了强大的支持。其中,数据的导入导出是日常数据库管理中非常重要的环节之一。本文将详细...

    全国地区数据库 mysql导出的sql文件 可导入mssql

    全国地区数据库 mysql导出的sql文件 可导入mssql

    mysql导入导出sql文件.docx

    mysqldump 命令和 source 命令是MySQL数据库导入导出 SQL 文件的两个重要工具。mysqldump 命令可以将数据库的数据和表结构导出到一个 SQL 文件中,而 source 命令可以将 SQL 文件导入到数据库中。

    数据库关系图导出到sql文件 数据库模型图导出到sql文件

    "数据库关系图导出到sql文件" 数据库关系图是数据库管理系统中的一种重要工具,它提供了可视化的数据库架构管理方式,方便DBA和开发者了解数据库的结构和关系。但是,数据库关系图的导出却是一个遗憾的空白,尤其是...

    mysql数据库导出word数据字典

    当需要将数据库中的信息以文档形式分享或者备份时,将MySQL数据库导出为Word数据字典是一种实用的方法。这个过程可以帮助我们清晰地查看和理解数据库结构,包括表的定义、字段信息以及可能的索引和外键关系。 ...

    linux下导入导出mysql数据库及其导出数据命令大汇总

    这将导出 `VSMNG` 数据库中的所有表结构和数据,并将其保存到一个名为 `VSMNG_20111024` 的文件中。 2. 只导出 MySQL 数据库的表结构 如果我们只想导出 MySQL 数据库的表结构,而不包含数据,可以使用以下命令: `...

    mysql导入导出sql.rar

    总的来说,"mysql导入导出sql"为MySQL数据库的日常维护提供了一种实用、高效的解决方案,简化了数据库的导入导出流程,使得即使是对编程不太熟悉的用户也能轻松上手。通过这个工具,我们可以更安全、便捷地管理和...

    数据库工具(导出SQL脚本)

    "数据库工具(导出SQL脚本)"这一主题主要关注如何利用这些工具将数据库中的数据和结构转换为可执行的SQL脚本,以便于数据的迁移、备份或共享。以下是关于这个主题的详细解释: 一、SQL脚本的重要性 SQL...

    mysql 安装 导出SQL

    1. **使用mysqldump命令导出SQL文件**: - `mysqldump -u root -p dsjenergy &gt; D:\20181106energy.sql` - 这条命令将`dsjenergy`数据库的所有内容导出到`D:\20181106energy.sql`文件中。 - `-u root`表示使用root...

    MYSQL导入导出.sql文件

    **从数据库导出文件** - **导出整个数据库**: - 使用命令`mysqldump -h hostname -u username -p dbname &gt; path\filename.sql`,其中`dbname`是需要导出的数据库名,`path\filename.sql`是导出文件的目标路径和...

    数据库表导出CHM文件

    数据库表导出CHM文件是一项实用的技术,它允许用户将数据库中的数据整理并保存为Microsoft的帮助文件格式(CHM)。这种格式便于查看、检索和分发,尤其适用于创建数据库手册或文档。支持多种数据库系统,如SQL ...

    Mysql导出数据库文件

    总结,MySQL的数据库导出功能提供了方便的数据备份和迁移手段。无论是通过图形化工具还是命令行,都应根据具体需求和环境选择合适的方法。正确地导出和备份数据库,对于维护数据安全和系统的稳定运行具有重要意义。

    现成的mysql数据库文件(商城db.sql)运行即可使用

    标题中的"现成的mysql数据库文件(商城db.sql)运行即可使用"表明我们得到了一个已经预设好的MySQL数据库文件,名为"db.sql",这个文件包含了商城系统的数据结构和可能的数据。通常,这种文件是由数据库管理员或者...

    mysql sqlserver等数据库文档导出

    4. `itextsharp.dll`:iTextSharp是.NET平台上的PDF库,可能用于生成数据库导出的PDF文档。 5. `MJTop.Data.dll`:这可能是一个自定义的数据访问组件,提供数据库操作的封装。 6. `ComponentFactory.Krypton.Toolkit...

    用NavicatforMySQL进行数据库的导出.pdf

    数据库导出技术及相关工具 Navicat for MySQL 在数据库管理中,数据库的导出是一个非常重要的操作。数据库导出的目的是将数据库中的数据导出到外部文件中,以便于数据的备份、迁移或交换。Navicat for MySQL是一个...

Global site tag (gtag.js) - Google Analytics