php简单备份与还原MySql的方法


Posted in PHP onMay 09, 2016

本文实例讲述了php简单备份与还原MySql的方法。分享给大家供大家参考,具体如下:

一、备份:

<?php
header ( "content-Type: text/html; charset=utf-8" );
//备份数据库
$host="localhost";
$user="root";//数据库账号
$password="123456";//数据库密码
$dbname="test";//数据库名称
//这里的账号、密码、名称都是从页面传过来的
if(!mysql_connect($host,$user,$password)) //连接mysql数据库
{
 echo '数据库连接失败,请核对后再试';
 exit;
}
if(!mysql_select_db($dbname)) //是否存在该数据库
{
 echo '不存在数据库:'.$dbname.',请核对后再试';
 exit;
}
mysql_query("set names 'utf8'");
$mysql= "set charset utf8;\r\n";
$q1=mysql_query("show tables");
while($t=mysql_fetch_array($q1)){
  $table=$t[0];
  $q2=mysql_query("show create table `$table`");
  $sql=mysql_fetch_array($q2);
  $mysql.=$sql['Create Table'].";\r\n";
  $q3=mysql_query("select * from `$table`");
  while($data=mysql_fetch_assoc($q3)){
    $keys=array_keys($data);
    $keys=array_map('addslashes',$keys);
    $keys=join('`,`',$keys);
    $keys="`".$keys."`";
    $vals=array_values($data);
    $vals=array_map('addslashes',$vals);
    $vals=join("','",$vals);
    $vals="'".$vals."'";
    $mysql.="insert into `$table`($keys) values($vals);\r\n";
  }
}
$filename="data/".$dbname.date('Ymjgi').".sql"; //存放路径,默认存放到项目最外层
$fp = fopen($filename,'w');
fputs($fp,$mysql);
fclose($fp);
echo "数据备份成功";
?>

二、还原

<!--
 author:果冻
 qq:52091199
 blog:http://wyg517.blog.163.com
-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$filename = "test20101216923.sql";
$host="localhost"; //主机名
$user="root"; //MYSQL用户名
$password="123456"; //密码
$dbname="test"; //在此指定您要恢复的数据库名,不存在则必须先创建,请自已修改数据库名
mysql_connect($host,$user,$password);
mysql_select_db($dbname);
$mysql_file="data/".$filename; //指定要恢复的MySQL备份文件路径,请自已修改此路径
restore($mysql_file); //执行MySQL恢复命令
function restore($fname)
 {
 if (file_exists($fname)) {
  $sql_value="";
  $cg=0;
  $sb=0;
  $sqls=file($fname);
  foreach($sqls as $sql)
  {
  $sql_value.=$sql;
  }
  $a=explode(";\r\n", $sql_value); //根据";\r\n"条件对数据库中分条执行
  $total=count($a)-1;
  mysql_query("set names 'utf8'");
  for ($i=0;$i<$total;$i++)
  {
  mysql_query("set names 'utf8'");
  //执行命令
  if(mysql_query($a[$i]))
  {
   $cg+=1;
  }
  else
  {
   $sb+=1;
   $sb_command[$sb]=$a[$i];
  }
  }
  echo "操作完毕,共处理 $total 条命令,成功 $cg 条,失败 $sb 条";
  //显示错误信息
  if ($sb>0)
  {
  echo "<hr><br><br>失败命令如下:<br>";
  for ($ii=1;$ii<=$sb;$ii++)
  {
   echo "<p><b>第 ".$ii." 条命令(内容如下):</b><br>".$sb_command[$ii]."</p><br>";
  }
  }  //-----------------------------------------------------------
 }else{
  echo "MySQL备份文件不存在,请检查文件路径是否正确!";
 }
 }
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
在PHP中执行系统外部命令
Oct 09 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
Feb 16 PHP
php 连接mssql数据库 初学php笔记
Mar 01 PHP
Windows下XDebug 手工配置与使用说明
Jul 11 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
php实现webservice实例
Nov 06 PHP
php使用指定字符列表生成随机字符串的方法
Apr 18 PHP
php使用timthumb生成缩略图的方法
Jan 22 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
Laravel实现批量更新多条数据
Apr 06 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 #PHP
php简单复制文件的方法
May 09 #PHP
win10环境PHP 7 安装配置【教程】
May 09 #PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
May 09 #PHP
php自动提交表单的方法(基于fsockopen与curl)
May 09 #PHP
php简单实现多语言切换的方法
May 09 #PHP
深入浅析PHP无限极分类的案例教程
May 09 #PHP
You might like
微博短链接算法php版本实现代码
2012/09/15 PHP
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
js innerHTML 改变div内容的方法
2013/08/03 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
2018/11/05 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
Node 代理访问的实现
2019/09/19 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
python语言中with as的用法使用详解
2018/02/23 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
Python中bisect的使用方法
2019/12/31 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
请解释virtual关键字的含义
2015/06/17 面试题
初中家长寄语
2014/04/02 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
公司安全管理制度范本
2015/08/05 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
UNION CREATIVE《Re:从零开始的异世界生活》雷姆手办
2022/03/20 日漫
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
2022/04/08 Java/Android