}
//
-function NICKNAME_IS_ACTIVE($uidNick)
-{
+function NICKNAME_IS_ACTIVE ($uidNick) {
+ global $cacheArray;
+
+ // By default nothing is found...
$ret = false;
- $result = SQL_QUERY_ESC("SELECT userid FROM `"._MYSQL_PREFIX."_user_data` WHERE (userid=%s AND userid > 0) OR nickname='%s' LIMIT 1",
- array(bigintval($uidNick), $uidNick), __FILE__, __LINE__);
- // Check existence of nickname
- if (SQL_NUMROWS($result) == 1) $ret = true;
+ // Found in cache?
+ if (isset($cacheArray['nick_active'][$uidNick])) {
+ // Use it directly
+ $ret = $cacheArray['nick_active'][$uidNick];
+
+ // Increment cache counter
+ incrementConfigEntry('cache_hits');
+ } else {
+ // Search in database
+ // @TODO Can we replace this with GET_TOTAL_DATA() ?
+ $result = SQL_QUERY_ESC("SELECT userid FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s OR nickname='%s' LIMIT 1",
+ array(bigintval($uidNick), $uidNick), __FILE__, __LINE__);
- // Free result
- SQL_FREERESULT($result);
+ // Check existence of nickname
+ $ret = (SQL_NUMROWS($result) == 1);
+
+ // Put it in cache
+ $cacheArray['nick_active'][$uidNick] = $ret;
+
+ // Free result
+ SQL_FREERESULT($result);
+ }
// Return nickname
return $ret;
}
+
//
-function NICKNAME_GET_NICK($userid)
-{
+function NICKNAME_GET_NICK ($userid) {
+ global $cacheArray;
+
// If not found...
$ret = "";
- // Search for non-empty nickname
- $result = SQL_QUERY_ESC("SELECT nickname FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s AND nickname != '' LIMIT 1",
- array(bigintval($userid)), __FILE__, __LINE__);
+ // Found in cache?
+ if (isset($cacheArray['nicknames'][$userid])) {
+ // Use it directly
+ $ret = $cacheArray['nicknames'][$userid];
- // Found?
- if (SQL_NUMROWS($result) == 1)
- {
- // Load nickname from database
- list($ret) = SQL_FETCHROW($result);
- }
+ // Increment cache counter
+ incrementConfigEntry('cache_hits');
+ } elseif (NICKNAME_IS_ACTIVE($userid)) {
+ // Search for non-empty nickname
+ $result = SQL_QUERY_ESC("SELECT nickname FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s AND nickname != '' LIMIT 1",
+ array(bigintval($userid)), __FILE__, __LINE__);
+
+ // Found?
+ if (SQL_NUMROWS($result) == 1) {
+ // Load nickname from database
+ list($ret) = SQL_FETCHROW($result);
- // Free result
- SQL_FREERESULT($result);
+ // Put it in cche
+ $cacheArray['nicknames'][$userid] = $ret;
+ } // END - if
+
+ // Free result
+ SQL_FREERESULT($result);
+ }
// Return nickname
return $ret;
}
+
+// Simple wrapper function
+function NICKNAME_PROBE_ON_USERID ($uid) {
+ return (NICKNAME_GET_NICK($uid) != "");
+}
+
//
?>