数据备份

通过使用exec()函数执行服务器里的外部程序,实现备份数据和恢复数据的操作。

exec()函数语法如下

string exec ( string command [, array &output [, int &return_var]] )

参    数

说    明

command

必选参数。字符串命令

output

可选参数。数组输出

return_var

可选参数。执行命令返回来的状态变量

执行数据备份恢复操作之前首先要确立和数据库的链接,并且要定义服务器的目录,以及mysql命令执行文件的操作路径

<?php 
  define('PATH',$_SERVER['DOCUMENT_ROOT']);                 		  //服务器目录
  define('ROOT','/mr/15/01/');                                            //论坛根目录
  define('ADMIN','admin/');                                               //后台目录
  define('BAK','sqlbak/');                                               //备份目录
  define('MYSQLPATH','F:\webpage\AppServ\MySQL\bin\');  		  //MySQL执行文件路径
  define('MYSQLDATA','db_forum');                                         //MySQL数据库
  define('MYSQLHOST','localhost');                                        //MySQL服务器ip
  define('MYSQLUSER','root');                                             //MySQL账号
  define('MYSQLPWD','');                                                  //MySQL密码
?>

 在确定与mysql数据库的链接和执行文件的路径之后,接下来就可以进行备份和恢复数据的操作。

备份数据库主要应用的是mysql中的mysqldump命令,输入mysql数据库的用户名(root),服务器(localhost),和密码(为空),指定要备份的数据库(db_forum),确定数据库备份文件的名称和存储的位置(sqlbak/),最后通过exec()函数执行这个命令,代码如下

<?php
  session_start();                                //初始化Session变量
  $conn=@mysql_connect("localhost","root","");        //连接数据库服务器
  mysql_select_db("db_forum",$conn);                  //连接指定的数据库
  mysql_query("set names utf-8");                    //对数据库中的编码格式进行转换,避免出现中文乱码的问题   //编写备份数据库的命令   $mysqlstr = MYSQLPATH.'mysqldump -u'.MYSQLUSER.' -h'.MYSQLHOST.' -p'.MYSQLPWD. ' --opt -B '.MYSQLDATA.' > '.PATH.ROOT.ADMIN.BAK.$_POST['b_name'];   exec($mysqlstr);            //执行备份数据库的命令   echo "<script>alert('备份成功');location='index.php?title=备份和恢复'</script>"; ?>

恢复数据的操作使用的是mysql命令,输入mysql数据库的用户名(root),服务器(localhost),和密码(为空),指定要备份的数据库(db_forum),确定数据库备份文件的名称和存储的位置(sqlbak/),最后通过exec()函数执行这个命令,代码如下

<?php
  session_start();                             //初始化Session变量
  $conn=@mysql_connect("localhost","root","");        //连接数据库服务器
  mysql_select_db("db_forum",$conn);                  //连接指定的数据库
  mysql_query("set names utf-8");                    //对数据库中的编码格式进行转换,避免出现中文乱码的问题   //编写恢复数据库的命令   $mysqlstr = MYSQLPATH.'mysql -u'.MYSQLUSER.' -h'.MYSQLHOST.' -p'.MYSQLPWD.' '.MYSQLDATA.' < '.PATH.ROOT.ADMIN.BAK.$_POST['r_name'];   exec($mysqlstr);                //执行恢复数据库操作的命令   echo "<script>alert('恢复成功');location='index.php?title=备份和恢复'</script>"; ?>
原文地址:https://www.cnblogs.com/aten/p/9059812.html