Я хочу кэшировать мои результаты mysql для уменьшения загрузки базы данных. Для кэширования результатов я использую следующую функцию:Кэш и итерация по массиву ассоциативных массивов
$cached = $this->getMemCacheX($name);
if ($cached === false)
{
$res = mysql_query($query, $con) or die(mysql_error());
if ($res === false) exit('Database failure.');
if ($fetch === "assoc")
{
$data = mysql_fetch_assoc($res);
}
else if ($fetch === "array")
{
$data = mysql_fetch_array($res);
}
if (mysql_num_rows($res) === 0) $data = 0;
$cr = $this->saveMemCacheX($name, $data);
if ($cr === false) exit('Cache failure.');
return $data;
}
else
{
return $cached;
}
Моя проблема заключается в том, что мне нужно сохранить и загрузить набор результатов над которым я использовал для итерации, используя какое-то время (mysql_fetch_assoc()) - Loop как:
$res = mysql_query("...");
while ($data = mysql_fetch_assoc($res))
{
...
}
Теперь мне нужно сохранить результаты в кеше, но поскольку я не могу хранить $ res, мне нужно сначала получить результаты.
Как можно выполнить итерацию по уже полученному набору результатов? Я опробовал несколько циклов foreach-Loops, но не нашел решения.
Как получить результаты, чтобы получить массив ассоциативных массивов из результатов базы данных?