zoukankan      html  css  js  c++  java
  • php导出mysql源码

    件名:db_backup.php
    源代码如下:

    复制代码 代码如下:
    <?php ini_set("max_execution_time", "180");//避免数据量过大,导出不全的情况出现。
    /*
    程序功能:mysql数据库备份功能 作者:唐小刚
    说明: 本程序主要是从mysqladmin中提取出来,并作出一定的调整,希望对大家在用php编程时备份数据有一定帮助.
    如果不要备份结构:请屏掉这句:echo get_table_structure($dbname, $table, $crlf).";$crlf$crlf"; 如果不要备份内容:请屏掉这句:echo get_table_content($dbname, $table, $crlf);
    修改者:何锦盛 修改时间:2009/11/7
    修改内容:新增函数get_table_structure,注释掉了函数get_table_def,目的是获得更丰富的建表时的细节(如:ENGINE=InnoDB AUTO_INCREMENT=80 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='商品信息变更信息') */
    $host="";//数据库地址
    $dbname="";//这里配置数据库名
    $username="";//用户名
    $passw="";//这里配置密码
    $filename=date("Y-m-d_H-i-s")."-".$dbname.".sql";
    header("Content-disposition:filename=".$filename);//所保存的文件名
    header("Content-type:application/octetstream");
    header("Pragma:no-cache"); header("Expires:0");
    //备份数据 $i = 0; $crlf=" "; global $dbconn; $dbconn = mysql_connect($host,$username,$passw]);//数据库主机,用户名,密码 $db = mysql_select_db($dbname,$dbconn); mysql_query("SET NAMES 'utf8'");
    $tables =mysql_list_tables($dbname,$dbconn); $num_tables = @mysql_numrows($tables); print "-- filename=".$filename; while($i < $num_tables) { $table=mysql_tablename($tables,$i); print $crlf;
    echo get_table_structure($dbname, $table, $crlf).";$crlf$crlf"; //echo get_table_def($dbname, $table, $crlf).";$crlf$crlf"; echo get_table_content($dbname, $table, $crlf); $i++; }
    /*新增的获得详细表结构*/ function get_table_structure($db,$table,$crlf) {
    global $drop;
    $schema_create = ""; if(!empty($drop)){ $schema_create .= "DROP TABLE IF EXISTS `$table`;$crlf";} $result =mysql_db_query($db, "SHOW CREATE TABLE $table");
    $row=mysql_fetch_array($result); $schema_create .= $crlf."-- ".$row[0].$crlf; $schema_create .= $row[1].$crlf; Return $schema_create;
    }
    /* //原来别人的取得数据库结构,但不完整 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 full 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]";
    if($row["Comment"] != "") $schema_create .= " Comment '$row[Comment]'";
    $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; }
    ?>
    转自http://www.jb51.net/article/45352.htm
  • 相关阅读:
    强烈推荐Seam实战
    关于写给大家看的C语言书(第2版)的读后感
    在Win7系统上安装ccnet 安装笔记
    使用Itext把html转换成pdf文件
    升级项目到Vs2010,编译时出现:MSB6006: “LC.exe”已退出,解决方法
    vs2010 插件不显示的问题处理。
    几个软件研发团队管理的小问题
    关于UML风格(第2版·英汉对照)的读后感
    C#本质论(第2版)的评论
    IDA Pro代码破解揭秘这本书怎么样
  • 原文地址:https://www.cnblogs.com/liuwenbohhh/p/4358194.html
Copyright © 2011-2022 走看看