Nemůžete uložit výsledný objekt, ne, ale můžete načíst všechny řádky do pole a toto pole uložit. Pokud potřebujete refaktorovat svůj kód na jiných místech, záleží na tom, jak jste kód napsali a jak dobře jste dříve abstrahovali přístup k databázi.
Pokud máte například funkci jako je tato:
function database_result($query) {
...
$result_array = $result->fetchAll();
return $result_array;
}
Poté můžete do této funkce přidat ukládání do mezipaměti 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;
}
Pokud všude používáte nezpracovaný objekt PDO nebo MySQLi, pak máte více práce.