refactor: s1_fdata caching implemented

#313
This commit is contained in:
Martin Ambrus
2017-11-20 15:41:29 +01:00
parent 91049ae034
commit 64d7d158c7
3 changed files with 42 additions and 1 deletions
+30
View File
@@ -2073,6 +2073,36 @@ class MYSQLi_DB implements IDbConnection {
return mysqli_query($this->dblink,$q);
}
function cacheResourceLevels($vids) {
if (!is_array($vids)) {
$vids = [$vids];
}
$newVids = [];
foreach ($vids as $index => $vidValue) {
$vids[ $index ] = (int) $vidValue;
// don't cache what's cached
if (!isset(self::$resourceLevelsCache[$vids[ $index ]])) {
$newVids[] = $vids[ $index ];
}
}
$vids = $newVids;
if (!count($vids)) {
return [];
}
$q = "SELECT * FROM " . TB_PREFIX . "fdata WHERE vref IN(".implode(', ', $vids).")";
$result = mysqli_query($this->dblink,$q);
foreach ( $this->mysqli_fetch_all( $result ) as $row ) {
self::$resourceLevelsCache[ $row['vref'] ] = $row;
}
return self::$resourceLevelsCache;
}
function getResourceLevel($vid, $use_cache = true) {
list($vid) = $this->escape_input((int) $vid);