zoukankan      html  css  js  c++  java
  • php实现数据库备份导出成sql

    转载于:https://www.cnblogs.com/wydchn/articles/5007177.html

    /**
         * 数据库备份
         */
        public function dbBackups($sPath='') {
            header("Content-type:text/html;charset=utf-8");
            //配置信息
            $cfg_dbhost = 'localhost';
            $cfg_dbname = 'dnname';
            $cfg_dbuser = 'dbuser';
            $cfg_dbpwd = 'dnpass';
            $cfg_db_language = 'utf8';
            $to_file_name = $sPath."databases_backup.sql";
            //END 配置
             
            //链接数据库
            $link = mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd);
            mysql_select_db($cfg_dbname);
            //选择编码
            mysql_query("set names ".$cfg_db_language);
             
            //数据库中有哪些表
            $tables = mysql_query("SHOW TABLES FROM $cfg_dbname");
            //将这些表记录到一个数组
            $tabList = array();
            while($row = mysql_fetch_row($tables)) {
                $tabList[] = $row[0];
            }
            $sqldump = '';
            //echo "运行中,请耐心等待...<br/>";
            $info = "-- ----------------------------
    ";
            $info .= "-- 日期:".date("Y-m-d H:i:s",time())."
    ";
            $info .= "-- Power by 王永东博客(http://www.wangyongdong.com)
    ";
            $info .= "-- 仅用于测试和学习,本程序不适合处理超大量数据
    ";
            $info .= "-- ----------------------------
    
    ";
            //file_put_contents($to_file_name,$info,FILE_APPEND);
            $sqldump .= $info;
             
            //将每个表的表结构导出到文件
            foreach($tabList as $val){
                $sql = "show create table ".$val;
                $res = mysql_query($sql,$link);
                $row = mysql_fetch_array($res);
                $info = "-- ----------------------------
    ";
                $info .= "-- Table structure for `".$val."`
    ";
                $info .= "-- ----------------------------
    ";
                $info .= "DROP TABLE IF EXISTS `".$val."`;
    ";
                $sqlStr = $info.$row[1].";
    
    ";
                //追加到文件
                //file_put_contents($to_file_name,$sqlStr,FILE_APPEND);
                $sqldump .= $sqlStr;
                //释放资源
                mysql_free_result($res);
            }
             
            //将每个表的数据导出到文件
            foreach($tabList as $val){
                $sql = "select * from ".$val;
                $res = mysql_query($sql,$link);
                //如果表中没有数据,则继续下一张表
                if(mysql_num_rows($res)<1) continue;
                //
                $info = "-- ----------------------------
    ";
                $info .= "-- Records for `".$val."`
    ";
                $info .= "-- ----------------------------
    ";
                $sqldump .= $info;
                //file_put_contents($to_file_name,$info,FILE_APPEND);
                //读取数据
                while($row = mysql_fetch_row($res)){
                    $sqlStr = "INSERT INTO `".$val."` VALUES (";
                    foreach($row as $zd){
                        $sqlStr .= "'".$zd."', ";
                    }
                    //去掉最后一个逗号和空格
                    $sqlStr = substr($sqlStr,0,strlen($sqlStr)-2);
                    $sqlStr .= ");
    ";
                    $sqldump .= $sqlStr;
                    //file_put_contents($to_file_name,$sqlStr,FILE_APPEND);
                }
                //释放资源
                mysql_free_result($res);
                $sqldump .= '
    ';
                //file_put_contents($to_file_name,"
    ",FILE_APPEND);
            }
             
            $filename = 'ciblog_'. date('Ymd_His', time()).'.sql';
            header('Content-Type: text/x-sql');
            header("Content-Disposition:attachment;filename=".$filename);
             
            echo $sqldump;
        }
    //将表结构导出到文件
            
                $sql = "show create table ".$database;
                $res = $this->db->query($sql,$link);
                $row = $this->db->fetch_array($res);
                $info = "-- ----------------------------
    ";
                $info .= "-- Table structure for `".$database."`
    ";
                $info .= "-- ----------------------------
    ";
                $info .= "DROP TABLE IF EXISTS `".$database."`;
    ";
                $sqlStr = $info.$row[0]['Create Table'].";
    
    ";
                //追加到文件
                //file_put_contents($to_file_name,$sqlStr,FILE_APPEND);
                $sqldump .= $sqlStr;
         //    // //将表的数据导出到文件
                $sql = "select * from ".$database;
                $res = $this->db->query($sql);
    
                $info = "-- ----------------------------
    ";
                $info .= "-- Records for `".$database."`
    ";
                $info .= "-- ----------------------------
    ";
                $sqldump .= $info;
                //file_put_contents($to_file_name,$info,FILE_APPEND);
         //        //读取数据
                $row = $this->db->fetch_array($res);
                if ($row) {
    	            foreach($row as $val){
                		$sqlStr = "INSERT INTO `".$database."` VALUES (";
    	            	foreach($val as $v){
    		                $sqlStr .= "'".$v."', ";
    		            }
    		            //去掉最后一个逗号和空格
    		            $sqlStr = substr($sqlStr,0,strlen($sqlStr)-2);
    		            $sqlStr .= ");
    ";
    		            $sqldump .= $sqlStr;
    	            }
                
                }
                //file_put_contents($to_file_name,$sqlStr,FILE_APPEND);
    
                $sqldump .= "
    ";
                //file_put_contents($to_file_name,"
    ",FILE_APPEND);
             
            $filename = 'ciblog_'. date('Ymd_His', time()).'.sql';
            header('Content-Type: text/x-sql');
            header("Content-Disposition:attachment;filename=".$filename);
    

      

  • 相关阅读:
    Action/Service/DAO简介 一
    Python中的Nonetype类型怎么判断?
    idea 中使用maven命令
    python-字符串中含有变量的表示方法
    python-configparser模块,读取配置文件
    python json 和 dict
    python interpreter解释器设置
    python写入数据到excel-xlwt模块(不能修改,每次写入全覆盖)
    pymongo问题集合
    excel表操作使用记录
  • 原文地址:https://www.cnblogs.com/zinging/p/14701177.html
Copyright © 2011-2022 走看看