Du kan inte lagra resultatobjektet, nej, men du kan hämta alla rader till en array och lagra den arrayen. Om du behöver omfaktorisera din kod på andra ställen beror på hur du har skrivit din kod och hur väl du har abstraherat databasåtkomst tidigare.
Till exempel, om du har en funktion som denna:
function database_result($query) {
...
$result_array = $result->fetchAll();
return $result_array;
}
Sedan kan du lägga till Memcached caching i den funktionen:
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;
}
Om du använder det råa PDO- eller MySQLi-objektet överallt, har du mer att göra.