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
  • 相关阅读:
    WHERE col1=val1 AND col2=val2;index exists on col1 and col2, the appropriate rows can be fetched directly
    MySQL 交集 实现方法
    MBProgressHUD的使用
    Xcode4 使用 Organizer 分析 Crash logs(转)
    SimpleXML 使用详细例子
    PHP的XML Parser(转)
    iPhone,iPhone4,iPad程序启动画面的总结 (转)
    Pop3得到的Email 信件格式介绍
    yii总结
    隐藏Tabbar的一些方法
  • 原文地址:https://www.cnblogs.com/liuwenbohhh/p/4358194.html
Copyright © 2011-2022 走看看