Не можете да съхранявате резултатния обект, не, но можете да извлечете всички редове в масив и да съхраните този масив. Ако имате нужда от рефакторинг на вашия код на други места, зависи от това как сте написали кода си и колко добре сте абстрахирали достъпа до базата данни по-рано.
Например, ако имате функция като тази:
function database_result($query) {
...
$result_array = $result->fetchAll();
return $result_array;
}
След това можете да добавите кеширане на Memcached вътре в тази функция:
function database_result($query, $expire = 60) {
$memcached_key = 'db:' . $query;
$cached = $memcached->get($memcached_key);
if ($memcached->getResultCode() !== Memcached::RES_NOTFOUND) {
return $cached;
}
...
$result_array = $result->fetchAll();
$memcached->set($memcached_key, $result_array, $expire);
return $result_array;
}
Ако използвате необработения PDO или MySQLi обект навсякъде, тогава имате повече работа за вършене.