分配给会话数组而不是查询数据库

时间:2012-09-21 18:17:24

标签: php mysql

我想知道是否有任何一般规则可以考虑将数据分配给会话数组而不是每次加载新页面时查询数据库,因为知道结果集中的某些数据已经被检索过一次上一页。

3 个答案:

答案 0 :(得分:1)

确切地不确定您的问题,但如果您知道您将在许多页面中使用数据(例如用户信息/权限等...),则应将其保留在Session中,否则您可以查询数据。 / p>

答案 1 :(得分:0)

没有真正的规则。它总是取决于情况和要求。在会话中拥有当前用户信息意味着会话中的数据可能因数据库中的编辑而过时。通常几乎所有内容都会在“完成”并加载每个页面请求后立即写入数据库。当处理多页表单时,只要尚未完成以防止未完成的数据填满数据库,则填充表单的表单信息通常存储在会话中。

如上所述,这完全取决于要求。

答案 2 :(得分:0)

我的经验法则是只在会话中存储与用户会话严格相关的内容,例如其唯一ID。在会话中获得有关正在进行的操作的信息可能会导致一些奇怪的行为。考虑一个具有两步形式的应用程序。打开第一个表单会在第二个表单中读取会话中的值(例如对上次访问的值的引用)。如果我只打开一个选项卡,这很好,但根据用例,打开两个选项卡可能对我有利。我可以打开表单一个与值A,在另一个选项卡中打开一个表单对值B,然后提交第一个选项卡对值A.根据逻辑,我可能会得到错误的结果,其中来自值B的数据会覆盖应该在值A中的值