public static function insertWords($StText, $IDTicket = NULL) { $StValues = ''; $StSQL = ''; if (!empty($StText) || !is_string($StText)) { self::$StText = $StText; } self::WordExplode(); self::WordValidate(); self::selectIDWordFromObject(); $ArNewWord = self::$ArNewWord; $ArWordDB = self::$ArWordDB; $ArIDWord = self::$ArIDWord; if (empty(self::$ArWord) || !is_array(self::$ArWord)) { return FALSE; } if (!empty($ArNewWord) && is_array($ArNewWord)) { # # First Word # $StFirstWord = array_shift($ArNewWord); $StValues = "('', '{$StFirstWord}', 1)"; # # IDWord - autoincrement, StWord AND 1 to count of use # foreach ((array) $ArNewWord as $StWord) { $StValues .= ", ('', '{$StWord}', 1 )"; } # # If the word exists, we'll to increment her count # $StSQL = "INSERT IGNORE INTO Word VALUES {$StValues};"; SearchHandler::$DBHandler->setQuery($StSQL); } if (!empty($ArIDWord) && is_array($ArIDWord)) { $StIN = implode(",", $ArIDWord); $StSQL = "UPDATE Word SET ItCount = ItCount+1 WHERE IDWord IN ({$StIN});"; SearchHandler::$DBHandler->setQuery($StSQL); } # # Get all IDWords, including the new words this time # $ArIDWord = self::getIDWords(self::$ArWord, FALSE); if (!empty($IDTicket) && is_numeric($IDTicket)) { $ItFirstIDWord = array_shift($ArIDWord); $StValues = "( {$ItFirstIDWord}, {$IDTicket} )"; foreach ((array) $ArIDWord as $IDWord) { $StValues .= ", ( {$IDWord}, {$IDTicket} )"; } $StSQL = "REPLACE INTO WordTicket VALUES {$StValues};"; SearchHandler::$DBHandler->setQuery($StSQL); } SearchHandler::$DBHandler->commit(); unset($StFirstWord, $StValues, $StSQL); }