Nie możesz przechowywać obiektu wynikowego, nie, ale możesz pobrać wszystkie wiersze do tablicy i przechowywać tę tablicę. To, czy potrzebujesz refaktoryzacji kodu w innych miejscach, zależy od tego, jak go napisałeś i jak dobrze wcześniej uzyskałeś abstrakcyjny dostęp do bazy danych.
Na przykład, jeśli masz taką funkcję:
function database_result($query) {
...
$result_array = $result->fetchAll();
return $result_array;
}
Następnie możesz dodać buforowanie Memcached wewnątrz tej funkcji:
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;
}
Jeśli wszędzie używasz surowego obiektu PDO lub MySQLi, masz więcej pracy do wykonania.