step3_run.php 5.5 KB

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