A-A+

php单文件实现MySQL备份导出sql数据库代码

2015年06月14日 代码 暂无评论 阅读 846 次

单文件就可实现mysql数据库备份,并且生成.sql后缀。无需登录phpMyAdmin在导出数据

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

给我留言

Copyright © 老疯子 保留所有权利.  

用户登录

分享到: