За последние 24 часа нас посетили 18175 программистов и 1589 роботов. Сейчас ищут 994 программиста ...

Возврат результата запроса объектом класса не работает

Тема в разделе "PHP для новичков", создана пользователем polar-bear, 19 ноя 2007.

  1. polar-bear

    polar-bear Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    9
    Симпатии:
    0
    Добрый день.... Проблема вот в чем. Существует класс для кеширования SQL-запросов.
    Запросы кешируются в массиве. Если Время жизни запроса не истекло т.е. кэш актуален я просто пытаюсь вернуть результат записаный в массиве вот так...
    Код (Text):
    1.  
    2. return $this->sql_cache[$this->hash_query];
    Однако возвраемое значение пустое, то есть вывол содержимого запроса на экран
    Код (Text):
    1.  
    2.           $result=$cache_object->caching($sql_query);
    3.           while ($rows=mysqli_fetch_array($result)){
    4.                echo $rows['id']."  ".$rows['value_level1']."<br>";
    5.           }
    Ничего не дает. Подскажите пожалуйста где ошибся
     
  2. polar-bear

    polar-bear Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    9
    Симпатии:
    0
    Прошу помощи
     
  3. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    1) так апать тему - верный путь вызвать негатив.

    2) нам не видно как ты сохраняешь в массив, что такое $this->hash_query и т.п.

    3) смени подпись и не позорься.
     
  4. polar-bear

    polar-bear Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    9
    Симпатии:
    0
    Прошу простить... Начинаю исправлятся
    $this->hash_query - это ключ коздается он с помощью функции md5()
    Код (Text):
    1.  
    2.     public function caching($sql_query){
    3.         $this->hash_query=md5($sql_query);
    4.         if($this->need_for_cache($sql_query)){ #Проверяем нужно ли вообще кэшировать этот запрос
    5.             if($this->have_sql_cache())    #Если да то имеется ли этот запрос в кэше
    6.                 if($this->check_time_to_live()){ #Если есть проверяем не истекло ли время жизни кеша
    7.                     echo "return cached query<br>";
    8.                     return $this->sql_cache[$this->hash_query];     #Если время не истекло  то возвращаем результат запроса
    9.                 }
    10.                 else{
    11.                     $this->add_query_to_cache($sql_query); #иначе обновляем запрос в кэш
    12.                 }
    13.             else{
    14.                     $this->add_query_to_cache($sql_query); #Если запроса не существует то просто добавляем его в кэш
    15.             }      
    16.         }          
    17.         else{
    18.             mysqli_query($this->link_to_base,$sql_query);
    19.         }
    20.         return $this->sql_cache[$this->hash_query];                        
    21.     }