<?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. 修复 MySQL 数据库结构错误 – mysql_upgrade升级

    http://www.cnblogs.com/wjoyxt/p/5477072.html 不知道是不是每次更新 MySQL 软件之后都需要执行数据库升级指令?在我进行过的几次软件升级之后,总会在 My ...

  2. Particle Editor 无法启动此程序,因为计算机中丢失MSCP110.dll。尝试重新安装该程序以解决此问题。

    昨天下载了一个Particle Editor V2.1,打开时显示下面错误 网上百度了也不知是什么原因,回到家在另一台电脑上打开就行了,很奇怪... 两台电脑vs一台是vs2010,家里的一台是vs2 ...

  3. 基于MTD的NAND驱动开发、K9F1G08 2K page、Yaffs2 Files System

    转载:http://hi.baidu.com/cui1206/item/1d4119e376132513585dd886 基于MTD的NAND驱动(linux-2.6.22.10内核),目前已可以在该 ...

  4. centos中samba配置后始终连不上的绝招

    奶奶的,按照网上的办法改了/etc/samba/smb.conf配置文件,结果在win7里面死活连不上,后来发现是防火墙的问题. 有两个命令必须要执行: 1.将SELIUNX设置成disabled或者 ...

  5. NSBundle介绍及使用

    bundle 是一个目录,其中包含了程序会使用到的资源.这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in).对应bundle, cocoa提供了类NSBu ...

  6. VMware系统运维(二)安装Microsoft .NET 3.5

    1.安装vmware vSphere 5.5 之前先安装Microsoft .NET 3.5. 2.安装Microsoft .NET3.5,添加角色和功能. 3.勾选.NET Framework 3. ...

  7. IP地址,子网掩码、默认网关,DNS理论解释

    在网上发现的这篇文章写的非常好,有理论有示例. (一)  问题解析 001.   问:  IP地址,子网掩码,默认网关,DNS服务器,有什么区别呀?我知道没有IP地址就不能上网,我也知道没设DNS就不 ...

  8. 关于Linux的总结(三)

    1.man_page.txt 1.内部命令:echo 查看内部命令帮助:help echo 或者 man echo 2.外部命令:ls 查看外部命令帮助:ls --help 或者 man ls 或者 ...

  9. 【思路、优化】UVa 11491 - Erasing and Winning

    Juliano is a fan of the TV show Erasing and Winning, where participants are selected in a draw and r ...

  10. Java 自带性能监控工具:监视和管理控制台jconsole的使用

    关于JConsole工具的使用请参见:http://blog.csdn.net/defonds/article/details/45064297