我有以下情况。我必须运行一个查询,然后将其保存到内存中,如果我再次需要相同的结果从内存中获取它。
使用memcache存储和读取内存。问题是,如果您一次只保存一个数组中的信息,则必须处理两种情况:1表示资源类型,1表示数组类型。
问题是我是否可以将数组转换为Mysql资源类型。
感谢。
答案 0 :(得分:2)
做这样的事情
<?php
$db = mysql_connect("localhost","foo_dbo","pass") or die("Database error");
mysql_select_db("foo_db", $db);
$sql = "select * from posts;";
$file = sprintf("%s.dat", md5($sql));
$result = mysql_query($sql);
if (!$result) die("Invalid query: " . mysql_error());
while ($row = mysql_fetch_assoc($result)) $data[]=$row;
mysql_free_result($result);
mysql_close($db);
if($fp=fopen($file,"w")){
fwrite($fp,serialize($data));
fclose($fp);
}
?>
然后读回数组做类似的事情
unserialize(file_get_contents($file))
显然你使用memcache存储序列化数据而不是文件系统
希望这会有所帮助