只从mysql生成一次数据然后保存?

时间:2014-03-09 08:58:58

标签: php mysql save instance store

很难解释所以我只会说出我拥有的和我需要的东西

当用户访问任何页面时,我从mysql(每次)生成3个包含数据(大量数据)的数组。我需要这个用于页面标题中的选择选项

字符串总数~4000

$一个[1] [ '名称'] = “balallbal”;

$ a [1] ['desc'] =“balallbal desc”;


$ a [4000] ['name'] =“balallbal 4000”;

$ a [4000] ['desc'] =“balallbal desc 4000”;

我可以以某种方式存储此数据实例或smth所以当用户转到另一个页面时,它将使用存储的数据而不是查询mysql

3 个答案:

答案 0 :(得分:1)

是的,你可以。你必须使用$ _SESSION。 $ _SESSIONs通过页面存储数据,直到用户关闭浏览器。

这样做:

if($_SESSION['data-query'] == '')
{
   $data_array = get_data_from_db();
   $_SESSION['data-query'] = true; // to prevent the next data query
   $_SESSION['cat-data'] = $data_array;
}

或者您可以使用count($_SESSION['cat-data']) == 0代替'数据查询`(如评论中所述)

答案 1 :(得分:1)

您可能想尝试memcache。当用户第一次请求进入时,将结果存储在memcache中,对于下一个后续请求,您可以从memcache中提取数据,而不是查询sql。 此外,数据存储在缓存中的时间是可配置的。 http://in1.php.net/memcache

答案 2 :(得分:0)

使用$ _SESSION变量,它会在用户浏览网站时保留您的数据。

http://www.php.net/manual/en/features.sessions.php

检查此变量是否存在,并将数据放在代码的开头(例如start.php,init.php,header.php。将其包含在所有页面中)。如果不是 - 用mysql查询填充一次,而不是在其他页面上使用$ _SESSION。