Non puoi memorizzare l'oggetto risultato, no, ma puoi recuperare tutte le righe in un array e archiviare quell'array. Se hai bisogno di refactoring del tuo codice in altri posti dipende da come hai scritto il tuo codice e da quanto bene hai astratto l'accesso al database in precedenza.
Ad esempio, se hai una funzione come questa:
function database_result($query) {
...
$result_array = $result->fetchAll();
return $result_array;
}
Quindi puoi aggiungere la memorizzazione nella cache di Memcached all'interno di quella funzione:
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;
}
Se usi ovunque l'oggetto Raw PDO o MySQLi, hai più lavoro da fare.