zoukankan      html  css  js  c++  java
  • php程序备份还原mysql数据库

    <?php
    $link = mysql_connect("localhost", "root","");
    mysql_query("set names utf8");
    
    // mysql_select_db('数据库名称', $link);
    
    $version = mysql_get_server_info($link);
    
    $sys_info['os'] = PHP_OS;
    $sys_info['php_ver'] = PHP_VERSION;
    $sys_info['date'] = date('Y-m-d H:i:s', time());
    // 头文件
    $head = "-- lin3615 SQL Dump Program
    ".
                    "-- " . $sys_info['os'] . "
    ".
                    "-- PHP VERSION : " . $sys_info['php_ver'] . "
    ";
                    "-- MYSQL VERSION : " . $version . "
    ";
                    "-- Date " . $sys_info['date'] . "
    ";
    // 写入文件中        
    $fileName = date('Y-m-d-H-i-s', time()) . ".sql";
    $str = $head;    
    //获取数据表列表    
    $tableSQL = "show  tables";
    $tableNameArr = array(); // 数据表名称列表 
    $res = mysql_query($tableSQL, $link);
    while($row = mysql_fetch_assoc($res))
    {
        $tableNameArr[] = $row['Tables_in_数据库名']; // Tables_in_数据库名称
    }
    foreach($tableNameArr as $table)
    {
        // 获取数据表定义
        $tableDefineSQL = "show create table " . $table;
        $resTableDefine = mysql_query($tableDefineSQL, $link);
        $res = mysql_fetch_assoc($resTableDefine);
        $tableDataDefine = $res['Create Table'] . ";
    ";     // 数据表定义
        $str = $str . $tableDataDefine;
        $str = $str. "-- --------------------
    ";
        $str = $str. "-- Records of ".$table."
    ";
        $str = $str. "-- --------------------
    ";
        
        // 获取数据表的数据
        $sql = "select * from " . $table;
        $res = mysql_query($sql, $link);
        while($row = mysql_fetch_assoc($res))
        {
            $keysArray = $row;
            $record = array_map("mysql_real_escape_string",$row); // 处理换行符,转义字符
            $rr = implode("','", $record);
            $keyRecord = array_keys($keysArray);
            $ss = implode('`,`', $keyRecord);
            $fields = "`" . $ss . "`";
            $sql = "insert into `".$table."` (".$fields.") values ('" . $rr . "');
    ";
            $str = $str . $sql;
        }
    }    
    $resultEnd = file_put_contents($fileName, $str);
    
    // 以上结束数据备份
    
    // 以下开始数据还原操作
    $arr = file('备份数据库名.sql');
    // 移除注释
    function remove_comment($arr)
    {
        return (substr($arr, 0,2) != '--');
    }
    $sql_str = array_filter($arr,'remove_comment');
    $sql_str = str_replace("
    ", "",implode('',$sql_str));
    $ret = explode(";
    ", $sql_str);
    foreach($ret as $val)
    {
        $val = trim($val, " 
    ;");
        mysql_query($val, $link);
    }
  • 相关阅读:
    mysql数据库引擎myisam与innodb
    Java观察者模式的理解
    线程安全的单例模式
    线程相关
    java 线程读写锁
    原子变量AtomicInteger
    接口文档管理,版本管理工具,阿里RAP的windows下部署
    谷歌浏览器报错:跨域问题处理( Access-Control-Allow-Origin)_ 用于本地测试的快捷解决方法
    mysql bin-log日志记录
    阿里RDS中插入emoji 表情插入失败的解决方案
  • 原文地址:https://www.cnblogs.com/lin3615/p/5147533.html
Copyright © 2011-2022 走看看