<?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\r\n".
"-- " . $sys_info['os'] . "\r\n".
"-- PHP VERSION : " . $sys_info['php_ver'] . "\r\n";
"-- MYSQL VERSION : " . $version . "\r\n";
"-- Date " . $sys_info['date'] . "\r\n";
// 写入文件中
$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'] . ";\r\n"; // 数据表定义
$str = $str . $tableDataDefine;
$str = $str. "-- --------------------\r\n";
$str = $str. "-- Records of ".$table."\r\n";
$str = $str. "-- --------------------\r\n"; // 获取数据表的数据
$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 . "');\r\n";
$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("\r", "",implode('',$sql_str));
$ret = explode(";\n", $sql_str);
foreach($ret as $val)
{
$val = trim($val, " \r\n;");
mysql_query($val, $link);
}

php程序备份还原mysql数据库的更多相关文章

  1. 备份还原mysql数据库

    Windows下cmd命令行中备份还原mysql数据库 先cmd 上cd  到mysql的安装bin目录下,然后再运行下面的命令. 例如:cd C:\Program Files\MySQL\MySQL ...

  2. C#备份还原MySql数据库

    原文:C#备份还原MySql数据库 项目结束,粘点代码出来让Google或Baidu一下,原因是现在还搜不到这么现成的 调用MySql的工具mysqldump来实现. 类Cmd来实现调用cmd命令, ...

  3. xtrabackup备份还原MySQL数据库

    mysqldump 备份鉴于其自身的某些特性(锁表,本质上备份出来insert脚本或者文本,不支持差异备份),不太适合对实时性要求比较高的情况Xtrabackup可以解决mysqldump存在的上述的 ...

  4. PHP 备份还原 MySql 数据库

    原生 PHP 备份还原 MySql 数据库 支持 MySql,PDO 两种方式备份还原 php5.5 以上的版本建议开启pdo扩展,使用 pdo 备份还原数据 备份文件夹 db_backup.impo ...

  5. Navicat工具备份还原mysql数据库详细图解

    Navicat是个很不错的MYSQL数据库管理工具,我们常用的还web形式的phpmyadmin和font这三种了,都是非常不错的mysql管理工具.因为Navicat工具兼容性比较好,操作也比较简单 ...

  6. 高速备份还原MYSQL数据库

    #安装依赖包yum -y update gccyum -y install gcc+ gcc-c++ #安装cd /usr/local/softwaretar -jxvf p7zip_16.02_sr ...

  7. 备份/还原MySQL数据库----MySQL Workbench

    点击[Data Export],界面右侧将显示数据导出窗口. 2 点击[Refresh]按钮,刷新数据库列表(1),选择要导出的数据表(2),设置导出的目录(3),点击[Start Export]按钮 ...

  8. 备份/还原mysql数据库

    有木有遇到过这种情况?电脑或者服务器需要重装系统?可是你电脑上存着n多个网站的数据库,怎么办?把数据库文件夹拷贝出来,重装系统之后再拷回去?如果你使用了InnoDB引擎,恐怕那样做会出麻烦的,一个一个 ...

  9. Java在线备份和还原MySQL数据库。

    2018年6月29日14:00:48 阅读数:1534 今天整了整整一整天,终于使用Java在线备份和还原MySQL数据库了,哎,备份倒是很快,就是在还原的时候遇到了一个问题,也不报错,结果将sql语 ...

随机推荐

  1. LVS 详解

    http://zh.linuxvirtualserver.org/node/25 http://chrinux.blog.51cto.com/6466723/1198748 http://www.cn ...

  2. MHA手动在线切换主 原创3(主不参与复制)

    monitor 执行:slave2连接到slave1,server1 不做(主/从复制角色,停在那里) [root@monitor app1]# masterha_master_switch --co ...

  3. Helpers\Database

    Helpers\Database The database class is used to connect to a MySQL database using the connection deta ...

  4. SMI接口,SMI帧结构,MDC/MDIO

    转载:http://blog.csdn.net/zyboy2000/article/details/7442464 SMI全称是串行管理接口(Serial Management Interface). ...

  5. 琐碎-关于StringTokenizer工具

    属于:java.util包 构造函数: 1. StringTokenizer(String str):构造一个用来解析str的StringTokenizer对象.java默认的分隔符是“空格”.“制表 ...

  6. XGPush集成(信鸽集成)

    #import "AppDelegate.h" #import "XGPush.h" #import "XGSetting.h" #defi ...

  7. Fence Repair

    有n(n>=1&&n<=20000)个木棒.现在要将这些木棒还原为一根.每次只能将两根连接成一根.费用为这两根的长度.求还原的最小费用. 输入:n,接下来n个正整数,代表长 ...

  8. cocos2d-x lua 实现单例(管理类)

    cocos2d-x lua 实现单例(管理类) version: cocos2d-x 3.6 示例代码 local DogManager = class("DogManager") ...

  9. envi5.1下载地址

    ENVI 5.1 installer 32 bit :链接: http://pan.baidu.com/s/1c0EGZIw 密码: gcogENVI 5.1 Installer 64 bit :链接 ...

  10. SSIS 学习(0):企业离 BI 还有多远?【转】

    上一篇文章<<企业需要BI吗?>>发表后,有一些网友反应:BI现在还不火:BI仅仅在一些大企业有用武之地,中小型企业只能是望其项背,遥不可及了:BI仅仅是一些花拳秀腿而已,如果 ...