xpath('//word'); //$serverMsg+= "word count:".count($wordsList)."
"; //remove the same word foreach($wordsList as $ws){ $combine=$ws->pali.$ws->guid.$ws->type.$ws->gramma.$ws->parent.$ws->parent_id.$ws->mean.$ws->factors.$ws->fm.$ws->part_id; $word[$combine]=$ws; } $arrInserString=array(); $arrExistWords=array(); foreach($word as $x=>$ws){ $query = "select id,ref_counter from dict where \"guid\"=".$PDO->quote($ws->guid)." AND \"pali\"=".$PDO->quote($ws->pali)." AND \"type\"=".$PDO->quote($ws->type)." AND \"gramma\"=".$PDO->quote($ws->gramma)." AND \"mean\"=".$PDO->quote($ws->mean)." AND \"parent\"=".$PDO->quote($ws->parent)." AND \"parent_id\"=".$PDO->quote($ws->parent_id)." AND \"factors\"=".$PDO->quote($ws->factors)." AND \"factormean\"=".$PDO->quote($ws->fm)." AND \"part_id\"=".$PDO->quote($ws->part_id); $Fetch = PDO_FetchAll($query); $FetchNum = count($Fetch); if($FetchNum==0){ //new recorder $params=array($ws->guid, $ws->pali, $ws->type, $ws->gramma, $ws->parent, $ws->parent_id, $ws->mean, $ws->note, $ws->factors, $ws->fm, $ws->part_id, $ws->status, $ws->language, $UID, time()); array_push($arrInserString,$params); } else{ // "have a same recorder"; $wordId=$Fetch[0]["id"]; $ref=$Fetch[0]["ref_counter"]+1; //更新引用计数 $query="UPDATE dict SET ref_counter='$ref' where id=".$PDO->quote($wordId); $stmt = @PDO_Execute($query); if (!$stmt || ($stmt && $stmt->errorCode() != 0)) { $error = PDO_ErrorInfo(); echo "error".$error[2]."
"; } //去掉已经有的索引 $query = "select count(*) from user_index where word_index={$wordId} and user_id={$UID}"; $num = PDO_FetchOne($query); if($num==0){ array_push($arrExistWords,$Fetch[0]["id"]); } } } /* 开始一个事务,关闭自动提交 */ $PDO->beginTransaction(); $query="INSERT INTO dict ('id', 'guid', 'pali', 'type', 'gramma', 'parent', 'parent_id', 'mean', 'note', 'factors', 'factormean', 'part_id', 'status', 'dict_name', 'language', 'creator', 'time') VALUES (null,?,?,?,?,?,?,?,?,?,?,?,?,'user',?,?,?)"; $stmt = $PDO->prepare($query); foreach($arrInserString as $oneParam){ $stmt->execute($oneParam); } /* 提交更改 */ $PDO->commit(); $lastid=$PDO->lastInsertId(); if (!$stmt || ($stmt && $stmt->errorCode() != 0)) { $error = PDO_ErrorInfo(); echo "error - $error[2]
"; } else{ $count=count($arrInserString); echo "updata $count recorders."; //更新索引表 $iFirst=$lastid-$count+1; for($i=0;$i<$count;$i++){ array_push($arrExistWords,$iFirst+$i); } if(count($arrExistWords)>0){ /* 开始一个事务,关闭自动提交 */ $PDO->beginTransaction(); $query="INSERT INTO user_index ('id','word_index','user_id','create_time') VALUES (null,?,{$UID},?)"; $stmt = $PDO->prepare($query); foreach($arrExistWords as $oneId){ $stmt->execute(array($oneId,time())); } /* 提交更改 */ $PDO->commit(); if (!$stmt || ($stmt && $stmt->errorCode() != 0)) { $error = PDO_ErrorInfo(); echo "error - $error[2]
"; } else{ echo "updata index ".count($arrExistWords)." recorders."; } } else{ echo "updata index 0"; } } ?>