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 相关文章推荐
PHP4(windows版本)中的COM函数
Oct 09 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 PHP
php基于mcrypt的加密解密实例
Oct 27 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
Dec 25 PHP
PHP利用imagick生成组合缩略图
Feb 19 PHP
Yii全局函数用法示例
Jan 22 PHP
PHP闭包定义与使用简单示例
Apr 13 PHP
django中的ajax组件教程详解
Oct 18 PHP
php常用日期时间函数实例小结
Jul 04 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
php常用的工具开发整理
Sep 26 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
Oct 11 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
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
php代码架构的八点注意事项
2016/01/25 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
Python里隐藏的“禅”
2014/06/16 Python
Python实现LRU算法的2种方法
2015/06/24 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
python队列原理及实现方法示例
2019/11/27 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
2020/01/10 Python
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
波兰家居和花园家具专家:4Home
2019/05/26 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
个人自我鉴定
2013/11/07 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
投标承诺函格式
2015/01/21 职场文书
中学团支部工作总结
2015/08/13 职场文书
解除租赁合同协议书
2016/03/21 职场文书
总结Python使用过程中的bug
2021/06/18 Python
Python函数对象与闭包函数
2022/04/13 Python
python实现简单的三子棋游戏
2022/04/28 Python