PHP数据库备份还原

//数据库备份
    public function exportDatabase(){
        //备份数据库
        $host="localhost";
        $user="root";//数据库账号
        $password="root";//数据库密码
        $dbname="article";//数据库名称
//这里的账号、密码、名称都是从页面传过来的
        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];
//            DROP TABLE IF EXISTS `article`;
            $q2=mysql_query("show create table `$table`");
            $sql=mysql_fetch_array($q2);
            $mysql.="DROP TABLE IF EXISTS `".$sql[‘Table‘]."`;\r\n".$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(‘YmdHis‘).".sql"; //存放路径,默认存放到项目最外层
        $fp = fopen($filename,‘w‘);
        fputs($fp,$mysql);
        fclose($fp);
        echo "数据备份成功";

}

//删除文件名
//    function delFile($dirName){
//        if(file_exists($dirName) && $handle=opendir($dirName)){
//            while(false!==($item = readdir($handle))){
//                if($item!= "." && $item != ".."){
//                    if(file_exists($dirName.‘/‘.$item) && is_dir($dirName.‘/‘.$item)){
//                        delFile($dirName.‘/‘.$item);
//                    }else{
//                        if(unlink($dirName.‘/‘.$item)){
//                            return true;
//                        }
//                    }
//                }
//            }
//            closedir( $handle);
//        }
//    }

//数据还原
    public function inputDatabase($name){

$filename = $name;
        $host="localhost"; //主机名
        $user="root"; //MYSQL用户名
        $password="root"; //密码
        $dbname="article"; //在此指定您要恢复的数据库名,不存在则必须先创建,请自已修改数据库名
        mysql_connect($host,$user,$password);
        mysql_select_db($dbname);
        $mysql_file="data/".$filename; //指定要恢复的MySQL备份文件路径,请自已修改此路径
        $this->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备份文件不存在,请检查文件路径是否正确!";
        }
    }

时间: 2024-10-18 06:22:25

PHP数据库备份还原的相关文章

SQL server数据库备份还原问题备忘(亲测有效)

问题一:SQL server数据库备份还原方法 http://www.cnblogs.com/zgqys1980/archive/2012/07/04/2576382.html 问题二:无法执行 BACKUP LOG,因为当前没有数据库备份 http://blog.csdn.net/aojiancc2/article/details/46316451 问题三:还原数据库失败 备份集中数据库备份与现有数据库不同 http://jingyan.baidu.com/article/fb48e8be52

织梦数据库备份还原

[功能描述]系统数据库备份还原.[操作说明]后台登陆-系统-数据库备份/还原.[应用实例]进入数据库备份还原操作界面备份:这里可以全选或选择部分表进行备份,指定备份数据格式我们一般为默认,分卷大小一般为2048,备份表结构信息默认打勾,如只需要备份数据时,可以不选择.我们点击提交按钮.这里显示备份进度,备份完成后会提示“完成所有数据备份”!我们可以点击数据还原进行查看.恢复:进入备份还原操作界面,点击数据还原,出现我们备份的数据信息这里我们同样可以还原某一个表或全部,我们点开始还原数据.这时还原

MSSQL2008数据库备份还原和数据恢复

原文:MSSQL2008数据库备份还原和数据恢复   序言 一直想写一篇关于数据库备份与恢复的文章,但基于能力的有限对数据库认知的有限怕不足以准确的表达,最后思考很久还是决定把自己的一些理解写出来供大家参考,也是为了回报自己:出于能力及语言表达能力的有限还望大家包含,如果里面有说的不对的地方还望大家及时提出.好及时修改不至于错误的引导他人. 认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还

数据库备份还原

http://www.cnblogs.com/brucexuyg/archive/2012/06/22/2558755.html 以表”Table”为例:如类型是MyISAM, 数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储于”/data/$databasename/”目录中.如类型是InnoDB, 数据文件则存储在”$innodb_data_home_dir/″中的ibdata1文件中(一般情况),结构文件存在于table_name.frm中.My

第二百九十节,MySQL数据库-MySQL命令行导出导入数据库,数据库备份还原

MySQL命令行导出导入数据库,数据库备份还原 MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p news > news.sql

asp.net实现数据库备份还原功能

-- 备份数据库 backup database db_CSManage to disk='c:\backup.bak' -- 还原数据库,必须先备份该数据库的日志文件到原先的备份文件中 backup log db_CSManage to disk='c:\backup.bak' restore database db_CSManage from disk='c:\backup.bak' 其中db_CSManage是数据库名称,disk后的路径即是备份文件存储的路径. 知道了SQL语句,那么在.

学习笔记(十三)——数据库备份还原的知识点与注意事项

学习笔记(十三)——数据库备份还原的知识点与注意事项 一.备份还原基本概念 1.  完整备份:完整备份因为需要备份的数据量大,所以需要在空闲时间进行,并且定期进行. 2.  日志备份:日志备份的数据量小,备份时间为上一次备份到本次本分期间的数据,每天都可以进行备份,或者每小时都可以进行备份,据所需备份. 3.  增量备份(差异备份):只备份修改过的数据,与每小时进行的日志备份配合使用,效率更高. 二.备份设备 1.          在进行备份数据的保存时,需要输入的文件路径很长,并且每次都要输

MYSQL数据库备份还原

MYSQL数据库备份还原 一.  数据库备份 备份数据是数据库管理最常用的操作.为了保证数据库中数据的安全,数据管理员需要定期地进行数据备份.一旦数据库遭到破坏,即可通过备份的文件来还原.因此,数据备份是很重要的工作. 1.使用mysqldump 命令备份 mysqldump 命令可以将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中.mysqldump 命令的工作原理很简单: 它先查出需要备份的表的结构,再在文本文件中生成一个CREATE 语句,然后将表中的所有记

达梦数据库备份还原

1.数据库备份还原 --备份 backup database full to BAK201812050 bakfile 'E:\soft\dmdbms\data\DAMENG\bak\BAK201812050.bak' compressed; --还原 dmrestore ini_path=E:\dmdbms\data\DAMENG\dm.ini file=E:\dmdbms\data\DAMENG\bak\BAK201812050.bak 原文地址:https://www.cnblogs.co

java sql编辑器 动态报表 数据库备份还原 quartz定时任务调度 自定义表单 java图片爬虫

获取[下载地址]   QQ: 313596790   [免费支持更新] 三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A 集成代码生成器(开发利器)+快速构建表单;            QQ:313596790 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块 B 集成阿里巴巴数据库连接池druid;