sync.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <?php
  2. header('Content-type: application/json; charset=utf8');
  3. //查询term字典
  4. require_once "../path.php";
  5. require_once "../public/function.php";
  6. $PDO = new PDO("" . _FILE_DB_SENTENCE_, "", "", array(PDO::ATTR_PERSISTENT => true));
  7. $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  8. if (isset($_GET["op"])) {
  9. $op = $_GET["op"];
  10. } else if (isset($_POST["op"])) {
  11. $op = $_POST["op"];
  12. }
  13. switch ($op) {
  14. case "sync":
  15. {
  16. $time = $_POST["time"];
  17. $query = "select id as guid,modify_time from sentence where receive_time>'{$time}' limit 0,10000";
  18. $stmt = $PDO->query($query);
  19. $Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
  20. $iFetch = count($Fetch);
  21. echo json_encode($Fetch, JSON_UNESCAPED_UNICODE);
  22. break;
  23. }
  24. case "get":
  25. {
  26. if (isset($_GET["id"])) {
  27. $id = $_GET["id"];
  28. } else if (isset($_POST["id"])) {
  29. $id = $_POST["id"];
  30. } else {
  31. return;
  32. }
  33. $arrId = json_decode($id);
  34. $queryId = "('";
  35. foreach ($arrId as $one) {
  36. $queryId .= $one . "','";
  37. }
  38. $queryId = substr($queryId, 0, -2) . ")";
  39. $query = "SELECT
  40. id,
  41. block_id,
  42. book,
  43. paragraph,
  44. begin,
  45. end,
  46. tag,
  47. author,
  48. editor,
  49. text,
  50. language,
  51. ver,
  52. status,
  53. receive_time,
  54. modify_time
  55. FROM sentence
  56. WHERE id in {$queryId}";
  57. $stmt = $PDO->query($query);
  58. $Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
  59. echo json_encode($Fetch, JSON_UNESCAPED_UNICODE);
  60. break;
  61. }
  62. case "insert":
  63. {
  64. echo "正在准备插入记录<br>";
  65. if (isset($_POST["data"])) {
  66. $data = $_POST["data"];
  67. } else {
  68. echo "没有数据<br>";
  69. return;
  70. }
  71. $arrData = json_decode($data);
  72. // 开始一个事务,关闭自动提交
  73. $PDO->beginTransaction();
  74. $query = "INSERT INTO sentence (
  75. 'id',
  76. 'block_id',
  77. 'book',
  78. 'paragraph',
  79. 'begin',
  80. 'end',
  81. 'tag',
  82. 'author',
  83. 'editor',
  84. 'text',
  85. 'language',
  86. 'ver',
  87. 'status',
  88. 'receive_time',
  89. 'modify_time'
  90. ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
  91. $stmt = $PDO->prepare($query);
  92. foreach ($arrData as $oneParam) {
  93. $param = array();
  94. $param[] = $oneParam->id;
  95. $param[] = $oneParam->block_id;
  96. $param[] = $oneParam->book;
  97. $param[] = $oneParam->paragraph;
  98. $param[] = $oneParam->begin;
  99. $param[] = $oneParam->end;
  100. $param[] = $oneParam->tag;
  101. $param[] = $oneParam->auther;
  102. $param[] = $oneParam->editor;
  103. $param[] = $oneParam->text;
  104. $param[] = $oneParam->language;
  105. $param[] = $oneParam->ver;
  106. $param[] = $oneParam->status;
  107. $param[] = mTime();
  108. $param[] = $oneParam->modify_time;
  109. $stmt->execute($param);
  110. }
  111. // 提交更改
  112. $PDO->commit();
  113. if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
  114. $error = $PDO->errorInfo();
  115. echo "error - $error[2] <br>";
  116. } else {
  117. $count = count($arrData);
  118. echo "INSERT $count recorders." . "<br>";
  119. }
  120. break;
  121. }
  122. case "update":
  123. {
  124. echo "更在准备更新数据<br>";
  125. if (isset($_POST["data"])) {
  126. $data = $_POST["data"];
  127. } else {
  128. echo "没有输入数据<br>";
  129. return;
  130. }
  131. $arrData = json_decode($data);
  132. // 开始一个事务,关闭自动提交
  133. try {
  134. $PDO->beginTransaction();
  135. foreach ($arrData as $one) {
  136. $query = "UPDATE sentence SET text='{$one->text}' ,
  137. receive_time='" . mTime() . "' ,
  138. modify_time='{$one->modify_time}'
  139. where id='{$one->guid}'";
  140. $PDO->exec($query);
  141. }
  142. // 提交更改
  143. $PDO->commit();
  144. echo "update " . count($arrData) . "<br>";
  145. } catch (Exception $e) {
  146. $PDO->rollback();
  147. echo "Failed:" . $e->getMessage() . "<br>";
  148. }
  149. break;
  150. }
  151. }