step3_run.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <?php
  2. require_once '../path.php';
  3. $filename = $_GET["filename"];
  4. $dbname = $_GET["dbname"];
  5. $table = $_GET["table"];
  6. switch ($_GET["dbtype"]) {
  7. case "rich":
  8. case "system":
  9. if ($_GET["dbtype"] == "rich") {
  10. $sDescDbFile = _DIR_DICT_3RD_ . "/" . $dbname;
  11. $csvfile = _DIR_DICT_TEXT_ . "/rich/{$filename}";
  12. } else if ($_GET["dbtype"] == "system") {
  13. $sDescDbFile = _DIR_DICT_SYSTEM_ . "/" . $dbname;
  14. $csvfile = _DIR_DICT_TEXT_ . "/system/{$filename}";
  15. }
  16. $dns = "" . $sDescDbFile;
  17. $dbh = new PDO($dns, "", "", array(PDO::ATTR_PERSISTENT => true));
  18. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  19. if (strstr($filename, ".", true) === strstr($dbname, ".", true)) {
  20. //建立数据库
  21. $_sql = file_get_contents('rich_dict.sql');
  22. $_arr = explode(';', $_sql);
  23. //执行sql语句
  24. foreach ($_arr as $_value) {
  25. $dbh->query($_value . ';');
  26. }
  27. echo $dns . "建立数据库成功<br>";
  28. }
  29. // 开始一个事务,关闭自动提交
  30. $dbh->beginTransaction();
  31. $query = "INSERT INTO dict ('id','pali', 'type', 'gramma', 'parent', 'mean', 'note', 'parts', 'partmean', 'status', 'confidence', 'len', 'dict_name', 'lang') VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  32. $stmt = $dbh->prepare($query);
  33. $count = 0;
  34. // 打开文件并读取数据
  35. if (($fp = fopen($csvfile, "r")) !== false) {
  36. while (($data = fgetcsv($fp, 0, ',')) !== false) {
  37. //id,wid,book,paragraph,word,real,type,gramma,mean,note,part,partmean,bmc,bmt,un,style,vri,sya,si,ka,pi,pa,kam
  38. $stmt->execute($data);
  39. $count++;
  40. }
  41. fclose($fp);
  42. echo "单词表load<br>";
  43. } else {
  44. echo "can not open csv file. ";
  45. }
  46. // 提交更改
  47. $dbh->commit();
  48. if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
  49. $error = $dbh->errorInfo();
  50. echo "error - $error[2] <br>";
  51. } else {
  52. echo "updata $count recorders.";
  53. }
  54. $dbh = null;
  55. break;
  56. case "thin":
  57. echo "doing filename: $filename dbname: $dbname table:$table<br>";
  58. $sDescDbFile = _DIR_DICT_SYSTEM_ . "/" . $dbname;
  59. $csvfile = _DIR_DICT_TEXT_ . "/thin/{$filename}";
  60. $dns = "" . $sDescDbFile;
  61. $dbh = new PDO($dns, "", "", array(PDO::ATTR_PERSISTENT => true));
  62. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  63. // 开始一个事务,关闭自动提交
  64. $dbh->beginTransaction();
  65. if ($dbname === "ref.db") {
  66. if ($table === "dict") {
  67. $query = "INSERT INTO dict ('id','language', 'dict_id', 'eword', 'word', 'paliword', 'mean', 'length', 'status') VALUES ( ? , ? , ? , ? , ? , ? , ? , ? , ? )";
  68. } else if ($table === "info") {
  69. $query = "INSERT INTO info ('language' , 'id' , 'shortname' , 'name') VALUES ( ? , ? , ? , ? )";
  70. } else {
  71. echo "table name $table unkow.";
  72. }
  73. } else if ($dbname === "ref1.db") {
  74. $query = "INSERT INTO dict ('id','eword', 'word', 'length', 'count') VALUES ( ? , ? , ? , ? , ? )";
  75. } else {
  76. echo "db name $dbname unkow.";
  77. }
  78. $stmt = $dbh->prepare($query);
  79. $count = 0;
  80. // 打开文件并读取数据
  81. if (($fp = fopen($csvfile, "r")) !== false) {
  82. while (($data = fgetcsv($fp, 0, ',')) !== false) {
  83. $stmt->execute($data);
  84. $count++;
  85. }
  86. fclose($fp);
  87. echo "单词表load<br>";
  88. } else {
  89. echo "can not open csv file. ";
  90. }
  91. // 提交更改
  92. $dbh->commit();
  93. if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
  94. $error = $dbh->errorInfo();
  95. echo "error - $error[2] <br>";
  96. } else {
  97. echo "updata $count recorders.";
  98. }
  99. $dbh = null;
  100. break;
  101. case "part":
  102. $dns = "" . _FILE_DB_PART_;
  103. $dbh = new PDO($dns, "", "", array(PDO::ATTR_PERSISTENT => true));
  104. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  105. {
  106. //建立数据库
  107. $_sql = file_get_contents('part.sql');
  108. $_arr = explode(';', $_sql);
  109. //执行sql语句
  110. foreach ($_arr as $_value) {
  111. $dbh->query($_value . ';');
  112. }
  113. echo $dns . "建立数据库成功<br>";
  114. }
  115. // 开始一个事务,关闭自动提交
  116. $dbh->beginTransaction();
  117. $query = "INSERT INTO part ('word','weight') VALUES ( ?, ? )";
  118. $stmt = $dbh->prepare($query);
  119. $count = 0;
  120. // 打开文件并读取数据
  121. if (($fp = fopen(_DIR_DICT_TEXT_ . "/system/part.csv", "r")) !== false) {
  122. while (($data = fgetcsv($fp, 0, ',')) !== false) {
  123. $stmt->execute($data);
  124. $count++;
  125. }
  126. fclose($fp);
  127. echo "part load ";
  128. } else {
  129. echo "can not open csv file. ";
  130. }
  131. // 提交更改
  132. $dbh->commit();
  133. if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
  134. $error = $dbh->errorInfo();
  135. echo "error - $error[2] <br>";
  136. } else {
  137. echo "updata $count recorders.";
  138. }
  139. $dbh = null;
  140. break;
  141. }