step3_run.php 5.5 KB

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