/** * fetch db result * * @param object $db 指定DB Instance * @return array() */ public static function Fetch($n = null, $ids = array(), $k = 'id', $db = null) { if (empty($ids)) { return array(); } $single = is_array($ids) ? false : true; DB::CheckArray($ids); $ids = array_values($ids); $key = Memcache::GetObjectKey($n, $ids, $k); /* $memcache = Memcache::Instance(); $cache_key = array_values($key); $values = (!self::$mDebug && 'id'===$k) ? $memcache->Get( $cache_key ) : array(); */ $values = array(); $n_fetch_ids = array(); $y_fetch_record = array(); foreach ($key as $id => $c_key) { if (false == isset($values[$c_key])) { $n_fetch_ids[] = $id; } else { $y_fetch_record[$id] = $values[$c_key]; } } $result = $y_fetch_record; if (false == empty($n_fetch_ids)) { $r_fetch_record = self::DBFetch($n, $n_fetch_ids, $k, $db); if (false == empty($r_fetch_record)) { $result = array_merge($y_fetch_record, $r_fetch_record); } } if ($single) { return empty($result) ? array() : array_shift($result); } $result = Utility::AssColumn($result, $k); $result = Utility::SortArray($result, $ids); return $result; }