<?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. 关于“学习Linux用什么系统”的解答

    首先,阐述一下,我个人的观点——这个问题我曾经也想了很久了,这绝不是长篇大论后就是简单一句,适合你的就是最好的.其实,很多人看到这一句,心里已经有成千上万个奔腾了(至少我当时是这样的),为什么?因为我 ...

  2. CentOS/Linux安装VNCserver

    VNC全称是Virtual Network Computing,属于远程控制类软件.其优点是支持跨操作系统的远程图形化控制.在日常工作中,服务器常常是存在机房,不可能每次需要图形界面操作就跑到机房,因 ...

  3. javaweb学习总结十七(web应用组织结构、web.xml作用以及配置虚拟主机搭建网站)

    一:web应用组织结构 1:web应用组成结构 2:安装web组成机构手动创建一个web应用程序目录 a:在webapps下创建目录web b:在web目录下创建html.jsp.css.js.WEB ...

  4. Oracle_11g中解决被锁定的scott用户的方法(转载)

    转自:http://www.2cto.com/database/201402/277206.html Oracle 11g中修改被锁定的用户:scott 在安装完Oracle11g和创建完oracle ...

  5. poj 2749 2-SAT问题

    思路:首先将hate和friend建边求其次2-SAT问题,判断是否能有解,没解就输出-1,否则用二分枚举最大的长度,将两个barn的距离小于mid的看做是矛盾,然后建边,求2-SAT问题.找出最优解 ...

  6. Java反转单链表(code)

    主要是面试中可能会经常碰上该类似操作,尤其是稍大点公司,面试官可能并不在乎你能不能搞定该题,但是这类型题目最是能体现程序员的思维状态 ---一个迷糊头脑的程序员 怎能立志改变这个世界 /** * @a ...

  7. Oracle导入SQL脚本执行 scott 用户下的表删除了

    执行 .sql 文件时,应在 sqlplus  或 cmd 中执行,速度比plsql 中的command window 中书许多, scott 用户下的表删除了 可以执行如下 @D:\app\Admi ...

  8. Xcode编译时出现cannot run using the selected device提示

    很多文章说这个管用: 1) Project->Info->Deployment Target->iOS Deployment Target更改为<=设备的版本号; 2) Tar ...

  9. mysql千万级测试1亿数据的分页分析测试

    本文为本人最近利用几个小时才分析总结出的原创文章,希望大家转载,但是要注明出处 http://blog.sina.com.cn/s/blog_438308750100im0e.html 有什么问题可以 ...

  10. 和阿文一起学H5-- H5排版八大套路

    二.中心型 三.倾斜型 四.三角形 5.全图形 6.渐变型 7.蒙版型 \ 8.骨骼型 实例