在会话中保存对象是一种好习惯吗?

时间:2012-07-05 01:51:47

标签: php session

我正在开发一个针对许多客户动态定制的PHP通用应用程序。

我有课程client,我在其中加载了客户端的样式和首选项。

我的问题是:

在会话中保存该对象是一种好习惯吗? (我认为这是最好的解决方案,而不是在每个页面中创建对象,这将需要大量的mysql查询。

3 个答案:

答案 0 :(得分:4)

在处理会话时,您需要考虑的事情很少。

  1. 您不应在会话中存储不同的大值。 我认为这不是一个问题,因为偏好通常很小。

  2. 在会话中存储对象时。您可能无法获得实时更新。例如,假设相同的用户使用两个单独的浏览器和/或机器登录并在一个中修改首选项。在这种情况下,其他人将没有更新的自定义。它不是一个大问题,但取决于您的要求。

  3. 我在这里没有看到任何其他问题。事实上,它是在会话中存储小值并避免数据库查询的有效且好的解决方案。

答案 1 :(得分:0)

如果它不会改变,只会导致不断调用MySQL查询,那么,这是一个好主意。

MySQL查询(以及一般的函数)是内存/ cpu密集型,并且会影响PHP的页面加载速度,因此导致它做得更好的工作就越少。

如果返回的值会不断变化,那么会更好,但会在会话中存储您可以使用的值。

答案 2 :(得分:0)

我认为当客户端关闭浏览器时,会话将会消失。 如果将它存储在cookie(加载客户端)中?它不利于安全。

当你在会话中存储迷你数据时(加载服务器)。这意味着你在服务器上使用了一些内存。 当你有很多客户时会发生什么?

因此,应该在每个页面的进程结束时销毁数据库连接。 不要担心使用它。