static function GetDataTableIdFromValue($_database, $_column_s, $_value_s, $_canBeNumeric = true, $_maxlength = null) { if (!is_array($_value_s)) { if (!$_canBeNumeric && is_numeric($_value_s)) { return $_value_s; } if (!is_array($_value_s) && $_maxlength != null && strlen($_value_s) > $_maxlength) { $_value_s = substr($_value_s, 0, $_maxlength); } $_value_s = array(0 => $_value_s); } if (!is_array($_column_s)) { $_column_s = array(0 => $_column_s); } $ckey = "IFV" . md5($_database . serialize($_column_s) . serialize($_value_s)); if (isset(CacheManager::$DataTableResolved[$ckey])) { return CacheManager::$DataTableResolved[$ckey]; } $columns = $values = $onupdatefields = ""; for ($i = 0; $i < count($_column_s); $i++) { $columns .= ",`" . $_column_s[$i] . "`"; $values .= ", '" . DBManager::RealEscape($_value_s[$i]) . "'"; if ($i > 0) { $onupdatefields .= ",`" . $_column_s[$i] . "`='" . DBManager::RealEscape($_value_s[$i]) . "'"; } } DBManager::Execute(true, "INSERT IGNORE INTO `" . DB_PREFIX . $_database . "` (`id`" . $columns . ") VALUES (NULL" . $values . ") ON DUPLICATE KEY UPDATE `id`=LAST_INSERT_ID(`id`)" . $onupdatefields . ";"); $resid = DBManager::GetLastInsertedId(); if (is_numeric($resid) || $_value_s == "INVALID_DATA") { return CacheManager::$DataTableResolved[$ckey] = $resid; } else { return CacheManager::GetDataTableIdFromValue($_database, $_column_s, "INVALID_DATA", $_canBeNumeric, $_maxlength); } }
function GetBrowserId($_browser) { return CacheManager::GetDataTableIdFromValue(DATABASE_VISITOR_DATA_BROWSERS, "browser", $_browser); /* DBManager::Execute(true,"INSERT IGNORE INTO `".DB_PREFIX.DATABASE_VISITOR_DATA_BROWSERS."` (`id`, `browser`) VALUES (NULL, '".DBManager::RealEscape($_browser)."');"); $row = DBManager::FetchArray(DBManager::Execute(true,"SELECT `id` FROM `".DB_PREFIX.DATABASE_VISITOR_DATA_BROWSERS."` WHERE `browser`='".DBManager::RealEscape($_browser)."';")); return $row["id"]; */ }