当前位置:首页 > PHP教程 > php应用 > 列表

PHP后台备份MySQL数据库的源码实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-13 11:59:46 浏览: 评论:0 

今天小编就为大家分享一篇关于PHP后台备份MySQL数据库的源码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧。

PHP 备份 mysql 数据库的源代码,在完善的 PHP+Mysql 项目中,在后台都会有备份 Mysql 数据库的功能,有了这个功能,对于一些不便自己写shell脚本备份的VPS来说,就不用使用 FTP 或者使用 mysql 的管理工具进行 mysql 数据库备份下载,非常方便。

下面是一个php数据库备份的源代码,大家也可以根据自己的需求进行修改。

  1. <?php  
  2. // 备份数据库 
  3. $host = "localhost"
  4. $user = "root"//数据库账号 
  5. $password = ""//数据库密码 
  6. $dbname = "mysql"//数据库名称 
  7. // 这里的账号、密码、名称都是从页面传过来的 
  8. if (!mysql_connect($host$user$password)) // 连接mysql数据库 
  9.  echo '数据库连接失败,请核对后再试'
  10.   exit
  11. }  
  12. if (!mysql_select_db($dbname)) // 是否存在该数据库 
  13.  echo '不存在数据库:' . $dbname . ',请核对后再试'
  14.   exit
  15. }  
  16. mysql_query("set names 'utf8'"); 
  17. $mysql = "set charset utf8;\r\n"
  18. $q1 = mysql_query("show tables"); 
  19. while ($t = mysql_fetch_array($q1)) 
  20.   $table = $t[0]; 
  21.   $q2 = mysql_query("show create table `$table`"); 
  22.   $sql = mysql_fetch_array($q2); 
  23.   $mysql .= $sql['Create Table'] . ";\r\n"
  24.   $q3 = mysql_query("select * from `$table`"); 
  25.   while ($data = mysql_fetch_assoc($q3)) 
  26.   { 
  27.     $keys = array_keys($data); 
  28.     $keys = array_map('addslashes'$keys); 
  29.     $keys = join('`,`'$keys); 
  30.     $keys = "`" . $keys . "`"
  31.     $vals = array_values($data); 
  32.     $vals = array_map('addslashes'$vals); 
  33.     $vals = join("','"$vals); 
  34.     $vals = "'" . $vals . "'"
  35.     $mysql .= "insert into `$table`($keys) values($vals);\r\n"
  36.   }  
  37. }  
  38. $filename = $dbname . date('Ymjgi') . ".sql"//存放路径,默认存放到项目最外层 
  39. $fp = fopen($filename'w'); 
  40. fputs($fp$mysql); 
  41. fclose($fp); 
  42. echo "数据备份成功"
  43. ?> 

PHP执行Mysql数据库的备份和还原

使用mysqldump命令备份

mysqldump命令将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。

mysqldump命令的工作原理很简单。它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句。然后,将表中的所有记录转换成一条INSERT语句。然后通过这些语句,就能够创建表并插入数据。

mysqldump基本语法:

mysqldump -u username -p password dbname table1 table2 ...-> BackupName.sql

username为数据库用户名;

password为数据库密码

dbname参数表示数据库的名称;

table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;

BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;

  1. $exec="D:/phpstudy/mysql/bin/mysqldump -u".$db_user." -p".$db_pwd." ".$db_name." > ".$name
  2. exec($exec); 

前面要设置mysql执行文件的路径。

注意:这里的-p后面的password不要有空格,否则可能只会生成空的sql文件,后面$name是生成文件路径及名称。

简单的备份数据库就完成了。

还原使用mysqldump命令备份的数据库的语法

mysql -u root -p password dbname < backup.sql

参数跟备份时一样,backup.sql是需要还原的数据库文件,文件路径为绝对路径。

Tags: PHP备份MySQL

分享到: