马富天PHP博客

PHP实现MySQL数据库备份,导出SQL文件

学习笔记 马富天 2016-03-22 16:34:00 21 0

【摘要】不同版本的MySQL使用Navicate等连接工具导入导出数据库的时候,容易产生不兼容导致报错,并且无法导入导出数据。今天介绍的是自己使用PHP编程实现导出数据库,并保存到SQL文件中。

涉及PHP要点:mysql_list_tables()、SHOW CREATE TABLES 表名、INSERT INTO 表名 VALUES(...),然后连成一串写入到SQL文件中

  1. $sql = "SHOW TABLES";
  2. $dbname="test";
  3. $tables=mysql_query($sql);
  4. foreach($tables as $k => $v){
  5. $tbls[$v[$dbname]]['tb_name']=$v[$dbname];
  6. }
  7. foreach($tbls as $k => $v){
  8. $sql = "SHOW CREATE TABLE {$v['tb_name']}";
  9. $tbls_sql = $m->query($sql);
  10. $tables_sql[]=$tbls_sql[0]['Create Table'].";";
  11. $tbls[$k]['sql']="DROP TABLE IF EXISTS `{$v['tb_name']}`;\r\n".$tbls_sql[0]['Create Table'].";";
  12. }
  13. foreach($tbls as $k => $v){
  14. $sql = "SELECT * FROM {$v['tb_name']}";
  15. $tbls_data=$m->query($sql);
  16. foreach($tbls_data as $key => $value){
  17. $values="";
  18. $count=count($value);
  19. $i = 0;
  20. foreach($value as $kk => $vv){
  21. $i++;
  22. if($count==$i){
  23. $values.="'".$vv."'";
  24. }else{
  25. $values.="'".$vv."',";
  26. }
  27. }
  28. $str="INSERT INTO {$v['tb_name']} VALUES({$values});";
  29. $tbls[$k]['data'][]=$str;
  30. }
  31. }
  32. $str = "";
  33. foreach($tbls as $k => $v){
  34. $str .= $v['sql']."\r\n";
  35. foreach($v['data'] as $key => $value){
  36. $str .= $value."\r\n";
  37. }
  38. $str .="\r\n\r\n";
  39. }
  40. // 以只读的方式打开文件
  41. $handle = fopen("test.sql", "w");
  42. // 写入文件
  43. fwrite($handle,$str);
  44. // 关闭文件
  45. fclose($handle);

截图

请输入图片名称

版权归 马富天PHP博客 所有

本文标题:《PHP实现MySQL数据库备份,导出SQL文件》

本文链接地址:http://www.mafutian.net/16.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

0

上一篇《 js常用函数 》 下一篇《 PHP下载图片、文件 》
分享到:

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码