All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
web标准实现高效开发_[Html教程]
利用GridView显示主细表并一次编辑明细表所有数据的例子_[Asp.Net教程]
HTML 初学者指南(1)_[Html教程]
select控件在Mozilla和Opera中的问题_JavaScript技术_编程技术
HTML 5 预览(3)_[Html教程]
从,PHP,迁移到,ASP.NET(2)_[Asp.Net教程]
Access数据导入到SQLServer2005_[SQL Server教程]
ASP.NET,MVC+LINQ开发一个图书销售站点(1)-需求分析_[Asp.Net教程]
Delphi的绘图类
ASP.NET实现数字、字符混合验证码_[Asp.Net教程]
Reading number is top 10 pictures
奇趣的世界记录1
哥斯达黎加的门将是如何练成的
Players in the eyes of a perfect love2
9.3阅兵全景图6-常规导弹梯队和核导弹梯队
China telecom 114 spokesman MeiYanXu1
一个武林高手的故事
红楼梦金陵十二钗(2)
中国处女图鉴2
俞敏洪在清华终于说了实话
Tie a large font of mouse
Download software ranking
尖东毒玫瑰A
Tram sex maniac 2 (H) rar bag18
Boxer Classic video1
Ashlynn Video3
1400篇各类破解文章
Boxer Classic video2
Tram sex maniac 2 (H) rar bag1
WebService在.NET中的实战应用教学视频 → 第1集
Unix video tutorial7
Unix video tutorial11
归海一刀 published in(发表于) 2014/2/17 7:36:35 Edit(编辑)
PHP技巧:用PHP导出MySQL数据库内容为.sql文件_[PHP教程]

PHP技巧:用PHP导出MySQL数据库内容为.sql文件_[PHP教程]

PHP技巧:用PHP导出MySQL数据库内容为.sql文件_[PHP教程]


通常我们都用 phpMyAdmin 来导出,不过如果你的数据库如果存在下列问题,那么 phpMyAdmin 也无能为力。



  • 数据库的字符集与应用程序的字符集不一致;
  • 应用程序用错误的编码将数据保存到了数据库中;
  • 用 phpMyAdmin 和 mysqldump 导出的数据总是乱码。

总之你用 phpMyAdmin 和 mysqldump 导出的数据有乱码时,就试试看这个脚本吧。


使用很简单:

php export_db.php 数据库名 [-h 主机名] [-c 字符集] [-f 输出文件名] [-u 用户名] [-p] 
数据库名是必须提供的,其他参数如果没有提供则使用下面的默认值: 
默认主机名 : localhost 
默认字符集 : utf8 
默认用户名 : root 
默认密码 : (无) 
默认输出文件 : 数据库名.sql 

这个脚本的导出结果就是一个 .sql 文件,只有 insert 语句。
所以数据结构需要单独导出,不过这个就不存在字符集问题了。



源代码:




  1. if (!function_exists('mysql_connect')) {
  2. if (DIRECTORY_SEPARATOR == '/') {
  3. dl('php_mysql.so');
  4. } else {
  5. dl('php_mysql.dll');
  6. }
  7. }

  8. database = null;
  9. if (isset(argv[1])) {
  10. database = argv[1];
  11. } else {
  12. display_help();
  13. exit;
  14. }

  15. optional_args = array(
  16. '-h' => 'hostname',
  17. '-c' => 'charset',
  18. '-f' => 'filename',
  19. '-u' => 'username'
  20. );

  21. options = array(
  22. 'hostname' => 'localhost',
  23. 'charset' => 'utf8',
  24. 'filename' => '%s.sql',
  25. 'username' => 'root',
  26. );

  27. input_password = false;
  28. for (i = 2; i < argc; i++) {
  29. arg = argv[i];
  30. if (arg == '-p') {
  31. input_password = true;
  32. continue;
  33. }
  34. if (isset(optional_args[arg])) {
  35. value_name = optional_args[arg];
  36. if (isset(argv[i + 1])) {
  37. options[value_name] = argv[i + 1];
  38. i++;
  39. }
  40. }
  41. }

  42. if (input_password) {
  43. echo "password: ";
  44. fscanf(STDIN, '%s', password);
  45. options['password'] = password;
  46. echo "\n";
  47. } else {
  48. options['password'] = '';
  49. }

  50. if (database == null) {
  51. display_help();
  52. exit;
  53. }

  54. mysql_connect(options['hostname'], options['username'], options['password']);
  55. mysql_select_db(database);
  56. mysql_query("SET NAMES '{options['charset']}'");

  57. // 设置要导出的表
  58. tables = list_tables(database);

  59. filename = sprintf(options['filename'], database);
  60. fp = fopen(filename, 'w');
  61. foreach (tables as table) {
  62. dump_table(table, fp);
  63. }
  64. fclose(fp);
  65. mysql_close();
  66. echo "done.\n";
  67. exit;



  68. function list_tables(database)
  69. {
  70. rs = mysql_list_tables(database);
  71. tables = array();
  72. while (row = mysql_fetch_row(rs)) {
  73. tables[] = row[0];
  74. }
  75. mysql_free_result(rs);
  76. return tables;
  77. }

  78. function dump_table(table, fp = null)
  79. {
  80. need_close = false;
  81. if (is_null(fp)) {
  82. fp = fopen(table . '.sql', 'w');
  83. need_close = true;
  84. }
  85. fwrite(fp, "-- \n-- {table}\n-- \n");
  86. rs = mysql_query("SELECT * FROM `{table}`");
  87. while (row = mysql_fetch_row(rs)) {
  88. fwrite(fp, get_insert_sql(table, row));
  89. }
  90. mysql_free_result(rs);
  91. if (need_close) {
  92. fclose(fp);
  93. }
  94. fwrite(fp, "\n\n");
  95. }

  96. function get_insert_sql(table, row)
  97. {
  98. sql = "INSERT INTO `{table}` VALUES (";
  99. values = array();
  100. foreach (row as value) {
  101. values[] = "'" . mysql_real_escape_string(value) . "'";
  102. }
  103. sql .= implode(', ', values) . ");\n";
  104. return sql;
  105. }

  106. function display_help()
  107. {
  108. echo <<
  109. syntax:
  110. php export_db.php database [-h hostname] [-c charset] [-f filename] [-u username] [-p]

  111. defualt hostname : localhost
  112. default charset : utf8
  113. default username : root
  114. default password : (none)
  115. default filename : [database].sql

  116. EOT;
  117. }

  118. ?>

下载:export_db.rar

来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.