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";
}
}
?>