如何将PHP数组转换为Mysql资源

如何将PHP数组转换为Mysql资源,php,mysql,resources,memcached,Php,Mysql,Resources,Memcached,我有下面的场景。我必须运行一个查询,然后将其保存到内存中,如果我需要再次从内存中获取相同的结果 使用memcache进行内存存储和读取。问题是,如果在数组中保存信息,每次只需处理两种情况:一种是资源类型,另一种是数组类型 问题是我是否可以将数组转换为Mysql资源类型 谢谢。像这样做吧 <?php $db = mysql_connect("localhost","foo_dbo","pass") or die("Database error"); mysql_select_db("fo

我有下面的场景。我必须运行一个查询,然后将其保存到内存中,如果我需要再次从内存中获取相同的结果

使用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);
}

?>
显然,您应该使用memcache来存储序列化的数据,而不是文件系统


希望这有帮助

您不能将数组转换为MySQL资源。事实上,你为什么要这么做?如果您已经处理了MySQL结果,您可以将它们存储在数组中并使用数组。请解释你想完成的事情。只是为了添加,将数组(如序列化)存储在MyCask中,并作为键考虑使用MD5(小写查询字符串)。然后,当您查找它时,如果您有完全相同的查询字符串,您就可以找到它。@Fanis:这或多或少是MySQL的查询缓存所做的,只是它知道基础数据何时发生了更改。目前,我使用两种类型:数组和资源。对于数组,我必须以某种方式保留当前元素,如果我有一个Mysql资源,这会容易得多。所以,我必须坚持我的头:)保留和数组索引。或者我可以用一个特定的函数来做这个?@Mchl很公平@Emanuel您不能在memcache中存储mysql资源。如果您已经运行了Mysql查询缓存,那么只需再次运行相同的查询,获得一个新的Mysql资源,以便在以后需要时使用。
unserialize(file_get_contents($file))