import.php
上传用户:jiangbw
上传日期:2022-03-16
资源大小:49k
文件大小:6k
源码类别:

MySQL数据库

开发平台:

Unix_Linux

  1. <?
  2. /*======================================================================*
  3. || #################################################################### ||
  4. || # BUILD UNDER PHP SCRIPTNET 3.2.1 FRAMEWORK ||
  5. || # ---------------------------------------------------------------- # ||
  6. || # Code2Art Open Source Software. All Rights Reserved.  ||
  7. || # This file should be redistributed in whole or significant part.  # ||
  8. || # ------------------ SCRIPTNET IS FREE SOFTWARE ------------------ # ||
  9. || # http://www.code2art.com | http://www.code2art.com/scriptnet      # ||
  10. || # Copyleft by Benediktus Ardian Hersanto, SE       # ||
  11. || # Sorry if this framework is still unavailable for public       # ||
  12. || # because I still searching on my own head.       # ||
  13. || #################################################################### ||
  14. *======================================================================*/
  15. /*======================================================================*
  16. || #################################################################### ||
  17. || DBF to MySQL Bulk Converter 2.0 ||
  18. ||______________________________________________________________________||
  19. || This utility was developed on 2006, since this were used to be on    ||
  20. || my own library. But I think I should share it to you, because I      ||
  21. || need to save my work on Internet (I don't believe on my own HD drive)||
  22. || it always crash and had a terrible bad sectors.  ||
  23. || Thanks to all person who download this utility, I hope you enjoy it. ||
  24. || ||
  25. || Regards, ||
  26. || Benediktus Ardian Hersanto,SE (ardie_b@yahoo.com) ||
  27. /*======================================================================*/
  28. // ---------------------------------------------------------------------//
  29. // Free to use for everyone who understand PHP
  30. // ---------------------------------------------------------------------//
  31. include('init.php');
  32. LoadClass('session');
  33. LoadLibrary('dbms');
  34. $session = new session;
  35. if(!isset($_POST['dbname'])) {
  36. if(isset($_SESSION['source'])) {
  37. $post = unserialize($_SESSION['source']);
  38. define('DB_NAME',$post['dbname']);
  39. }
  40. } else {
  41. define('DB_NAME',$_POST['dbname']);
  42. }
  43. set_time_limit(0);
  44. LoadClass("dbf");
  45. if(!isset($_SESSION['source'])) {
  46. $keys = array_keys($_POST);
  47. $total_table = 0;
  48. for($i=0;$i<count($keys);$i++) {
  49. if (eregi(".dbf",$_POST[$keys[$i]])) {
  50. $dbfs = explode(",",$_POST[$keys[$i]]);
  51. $total_table += count($dbfs);
  52. }
  53. }
  54. $_POST['total_table'] = $total_table;
  55. $_POST['counter'] = 1;
  56. $source = serialize($_POST);
  57. $session->register('source');
  58. $dbfs = explode(",",$_POST[$keys[0]]);
  59. if(eregi('.dbf',$_POST[$keys[0]])) {
  60. $n = 0;
  61. $dbffile = DEFAULT_DATA_DIR."/".$keys[0]."/".$dbfs[$n];
  62. $dbf = new dbf($dbffile);
  63. $dbf->parseFile();
  64. $SQL = $dbf->createMySQLTable();
  65. if(!empty($SQL)) {
  66. $d = new DBMS;
  67. $db->Trace(__LINE__); $db->Query($SQL);
  68. $data = $dbf->parseData();
  69. $file = basename($dbfs[$n]);
  70. $table_name = eregi_replace(".dbf",'',$file);
  71. if((count($data)>0)&&($data!=NULL)) {
  72. for($i=0;$i<count($data);$i++) {
  73. $fields = array_keys($data[$i]);
  74. for($f=1;$f<count($fields);$f++) {
  75. if($data[$i][$fields[0]]!='*') {
  76. if(is_string($data[$i][$fields[$f]])) {
  77. $field[] = $fields[$f];
  78. $records[] = "'".addslashes(trim($data[$i][$fields[$f]]))."'";
  79. } else if(is_array($data[$i][$fields[$f]])) {
  80. $field[] = $fields[$f];
  81. $tgl = $data[$i][$fields[$f]]['Year'].$data[$i][$fields[$f]]['Month'].$data[$i][$fields[$f]]['Day'];
  82. if(trim($tgl)=='') $records[] = "null"; else
  83. $records[] = "'".$tgl."'";
  84. }
  85. }
  86. }
  87. if(!$db->Insert($table_name,implode(",",$field),implode(",",$records))) die(mysql_error());
  88. unset($field);
  89. unset($records);
  90. }
  91. }
  92. }
  93. echo "<meta http-equiv='refresh' content='0;url=import.php?id=".$keys[0]."&idx=".($n+1)."'>";
  94. $procentage = 1/$total_table;
  95. include('progress_bar.htm');
  96. }
  97. } else {
  98. $keys = array_keys($post);
  99. if(isset($post[$_GET['id']])) $dbfs = explode(",",$post[$_GET['id']]);
  100. $n = $_GET['idx'];
  101. if(!isset($dbfs[$n])) {
  102. array_shift($post);
  103. $n = 0;
  104. $keys = array_keys($post);
  105. $dbfs = explode(",",$post[$keys[0]]);
  106. }
  107. if(isset($dbfs[$n])) {
  108. $post['counter'] += 1;
  109. $source = serialize($post);
  110. $session->register('source');
  111. $dbffile = DEFAULT_DATA_DIR."/".$keys[0]."/".$dbfs[$n];
  112. if(file_exists($dbffile)) {
  113. $dbf = new dbf($dbffile);
  114. $dbf->parseFile();
  115. $SQL = $dbf->createMySQLTable();
  116. if(!empty($SQL)) {
  117. new DBMS;
  118. $db->Trace(__LINE__); $db->Query($SQL);
  119. $data = $dbf->parseData();
  120. $file = basename($dbfs[$n]);
  121. $table_name = eregi_replace(".dbf",'',$file);
  122. if(eregi('clear',$post['type'])) $db->Query('TRUNCATE '.$table_name);
  123. if((count($data)>0)&&($data!=NULL)) {
  124. for($i=0;$i<count($data);$i++) {
  125. $fields = array_keys($data[$i]);
  126. for($f=1;$f<count($fields);$f++) {
  127. if($data[$i][$fields[0]]!='*') {
  128. if(is_string($data[$i][$fields[$f]])) {
  129. $field[] = $fields[$f];
  130. $records[] = "'".addslashes(trim($data[$i][$fields[$f]]))."'";
  131. } else if(is_array($data[$i][$fields[$f]])) {
  132. $field[] = $fields[$f];
  133. $tgl = $data[$i][$fields[$f]]['Year'].$data[$i][$fields[$f]]['Month'].$data[$i][$fields[$f]]['Day'];
  134. if(trim($tgl)=='') $records[] = "null"; else
  135. $records[] = "'".$tgl."'";
  136. }
  137. }
  138. }
  139. if(!$db->Insert($table_name,implode(",",$field),implode(",",$records))) die(mysql_error());
  140. unset($field);
  141. unset($records);
  142. }
  143. }
  144. }
  145. echo "<meta http-equiv='refresh' content='0;url=import.php?id=".$keys[0]."&idx=".($n+1)."'>";
  146. $procentage = $post['counter']/$post['total_table'];
  147. include('progress_bar.htm');
  148. } else {
  149. $session->destroy();
  150. echo "<script> alert('Tables was successfully imported'); location.href='".(ereg('http://',DOMAIN_NAME)?DOMAIN_NAME:'http://'.DOMAIN_NAME)."';</script>";
  151. }
  152. }
  153. }
  154. ?>