xpath('//word'); PDO_Connect(_FILE_DB_WBW_,_DB_USERNAME_,_DB_PASSWORD_); //remove the same word foreach ($wordsList as $ws) { $combine = $ws->pali . $ws->type . $ws->gramma . $ws->parent . $ws->mean . $ws->factors . $ws->fm; $word[$combine] = $ws; } $arrInserString = array(); $arrExistWords = array(); $updateWord = array(); foreach ($word as $x => $ws) { $query = "SELECT id,ref_counter FROM "._TABLE_DICT_USER_." WHERE word = ? AND type = ? AND gramma = ? AND mean = ? AND base = ? AND factors = ? AND factormean = ? AND source = '_USER_WBW_'" ; $Fetch = PDO_FetchAll($query,array($ws->pali,$ws->type,$ws->gramma,$ws->mean,$ws->parent,$ws->factors,$ws->fm)); $FetchNum = count($Fetch); if ($FetchNum == 0) { $updateWord["{$ws->pali}"] = 1; //没有找到,新建数据 //new recorder $params = array( $ws->pali, $ws->type, $ws->gramma, $ws->parent, $ws->mean, $ws->note, $ws->factors, $ws->fm, $ws->status, $ws->language, '_USER_WBW_', mTime()); array_push($arrInserString, $params); } else { #查询本人是否有此记录 $query = "SELECT id,ref_counter FROM "._TABLE_DICT_USER_." WHERE word = ? AND type = ? AND gramma = ? AND mean = ? AND base = ? AND factors = ? AND factormean = ? AND user_id = ? " ; $FetchMy = PDO_FetchAll($query,array($ws->pali,$ws->type,$ws->gramma,$ws->mean,$ws->parent,$ws->factors,$ws->fm,$UID)); $FetchNumMy = count($FetchMy); if($FetchNumMy==0){ $wordId = $Fetch[0]["id"]; $ref = $Fetch[0]["ref_counter"] + 1; //更新引用计数 $query = "UPDATE dict SET ref_counter= ? where id = ? "; $stmt = PDO_Execute($query,array($ref,$wordId)); if (!$stmt || ($stmt && $stmt->errorCode() != 0)) { $error = PDO_ErrorInfo(); echo "error" . $error[2] . "
"; } #增加我的记录 $params = array( $ws->pali, $ws->type, $ws->gramma, $ws->parent, $ws->mean, $ws->note, $ws->factors, $ws->fm, $ws->status, $ws->language, '_WBW_', mTime()); array_push($arrInserString, $params); } // "have a same recorder"; } } /* 开始一个事务,关闭自动提交 */ $PDO->beginTransaction(); $query = "INSERT INTO "._TABLE_DICT_USER_." ( 'word', 'type', 'gramma', 'parent', 'mean', 'note', 'factors', 'factormean', 'status', 'source', 'language', 'creator_id', 'create_time') VALUES (?,?,?,?,?,?,?,?,?,'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 { //成功 #更新 redis if ($redis != false) { foreach ($updateWord as $key => $value) { # code... $query = "SELECT * from "._TABLE_DICT_USER_." where word = ? and source = '_USER_WBW_'"; $stmt = $PDO->prepare($query); $stmt->execute(array($key)); if ($stmt) { $Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC); $redisWord=array(); foreach ($Fetch as $one) { # code... $redisWord[] = array($one["id"], $one["pali"], $one["type"], $one["gramma"], $one["parent"], $one["mean"], $one["note"], $one["factors"], $one["factormean"], $one["status"], $one["confidence"], $one["creator"], $one["dict_name"], $one["language"] ); } $redis->hSet(Redis["prefix"]."dict/user",$key,json_encode($redisWord,JSON_UNESCAPED_UNICODE)); } } } #更新redis结束 }