コード例 #1
0
ファイル: Table.class.php プロジェクト: cmooony/d4d-studio
 /**
  * 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;
 }