<?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);
}

最新文章

  1. CentOS下安装hadoop
  2. AngularJS快速入门指南13:表单
  3. java代码过滤emoji表情
  4. Rhel6-cacti+nagios+ganglia(apache)配置文档
  5. POJ3630Phone List(字典树)
  6. jquery.inputmask.js 输入框input输入内容格式限制插件
  7. 数据结构(平衡树,树分治,暴力重构):WC 2014 紫荆花之恋
  8. 部署war包到Tomcat
  9. 【转】Linux下查看所有用户及用户组
  10. SHDP--Working with HBase(三)之HBase+Phoenix实现分页
  11. wx.Dialog
  12. sizeof,终极无惑(上)
  13. MD5碰撞后时代,MD5还有存在的意义吗?
  14. Django的form表单之文件上传
  15. 使用腾讯云“自定义监控”监控GPU使用率
  16. PHP 5 Calendar 函数
  17. linux安装nvm node版本管理器 nvm常用命令 部署node服务器环境
  18. leetcode每日刷题计划-简单篇day4
  19. 【2018.08.13 C与C++基础】C++语言的设计与演化读书笔记
  20. 九、.net core用orm继承DbContext(数据库上下文)方式操作数据库

热门文章

  1. [Effective C++ --031]将文件间的编译依存关系降至最低
  2. SQL Insert语句数据以以unicode码存储 解决存储数据出现乱码的问题
  3. 谈谈 Objective-C 链式语法的实现
  4. iCloud之旅
  5. 如何优雅的实现界面跳转 之 统跳协议 - DarwinNativeRouter
  6. Roadblocks http://poj.org/problem?id=3255
  7. JavaFX(三)窗口拖动
  8. python(4) - 装饰器
  9. 给jdk写注释系列之jdk1.6容器(4)-HashMap源码解析
  10. 【组合数的唯一分解定理】Uva1635