Php 在mysql\u fetch\u数组之前序列化?
我正在尝试使用memcache,但有一小部分我被卡住了。我有一个函数,它在result中提供了一个包含多个内容的数组(其中大部分是字符串),其中一个是mysql_query()函数的结果。 以下是我如何尝试取消序列化:Php 在mysql\u fetch\u数组之前序列化?,php,mysql,serialization,memcached,Php,Mysql,Serialization,Memcached,我正在尝试使用memcache,但有一小部分我被卡住了。我有一个函数,它在result中提供了一个包含多个内容的数组(其中大部分是字符串),其中一个是mysql_query()函数的结果。 以下是我如何尝试取消序列化: $posts_count = my query; /* MEMCACHE KEY GEN*/ $memcache_key = md5($posts); $pagination = memcache_get($mem
$posts_count = my query;
/* MEMCACHE KEY GEN*/
$memcache_key = md5($posts);
$pagination = memcache_get($memcache, $memcache_key);
if($pagination==NULL) {
echo 'NOT CACHED';
$pagination = (the function that will call mysql_query)
//SAVE A SERIALIZED VERSION OF THE ARRAY
$memcache->set($memcache_key, serialize($pagination), 0, 3600);
}
else {
$pagination = unserialize($pagination);
}
//THIS IS ONLY THE RESULT OF mysql_query!!!
$posts = $pagination[result];
while($var = mysql_fetch_array($posts)) { ... stuffs here }
你知道如何在mysql\u fetch\u数组之前“保存”mysql\u查询的结果吗?或者知道如何使用memcache来缓存整个while循环吗 像这样的东西怎么样:
$posts_count = "my query";
/* MEMCACHE KEY GEN*/
$memcache_key = md5($posts);
$pagination = memcache_get($memcache, $memcache_key);
if ($pagination == NULL) {
echo 'NOT CACHED';
$pagination = function_that_will_call_mysql_query();
// Create an array of all the results
$data = array();
while ($row = mysql_fetch_assoc($pagination['result'])) {
$data[] = $row;
}
$pagination['result'] = $data;
//SAVE A SERIALIZED VERSION OF THE ARRAY
$memcache->set($memcache_key, serialize($pagination), 0, 3600);
} else {
$data = unserialize($pagination);
}
// THIS IS ONLY THE RESULT OF mysql_query!!! (but now it's an array)
$posts = $pagination['result'];
while ($var = array_shift($posts)) {
// ... do stuff here
}
无法序列化资源。好的,但是有没有一种方法可以在while循环中使用memcache呢?我们打算提出一些类似的建议,但是OP非常混乱。希望它能坚持住,太完美了!我决不会想到数组的移位!非常感谢!:)嘿@DaveRandom请看看这个:如果你能帮忙。。。