我有以下场景。我必须运行一个查询,然后将它保存到内存中,如果我需要再次从内存中获取相同的结果。
内存的存储和读取是用 memcache 实现的。问题是,如果您一次将信息保存在一个数组中,则只需处理两种情况:一种用于资源类型,另一种用于数组类型。
问题是我是否可以将数组转换为 Mysql 资源类型。
谢谢。
最佳答案
做这样的事情
<?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))
很明显,您会使用内存缓存来存储序列化数据而不是文件系统
希望对你有帮助
关于php - 如何将PHP数组转换成Mysql资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3665145/