php简单备份与还原MySql的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-08-02 14:57:32 浏览: 评论:0
这篇文章主要介绍了php简单备份与还原MySql的方法,涉及php针对mysql数据库的连接、查询及文件操作相关技巧,需要的朋友可以参考下。
本文实例讲述了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备份文件不存在,请检查文件路径是否正确!";
- }
- }
- ?>
Tags: php备份MySql php还原MySql
- 上一篇:PHP检测链接是否存在的代码实例分享
- 下一篇:基于PHP实现商品成交时发送短信功能
相关文章
- ·PHP利用XML备份MySQL数据库实例(2014-09-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)