Php 在mySQL或Sessions中选择什么来继续我的页面?

Php 在mySQL或Sessions中选择什么来继续我的页面?,php,mysql,session,Php,Mysql,Session,场景1 在page1.php中,我使用php和MySQL将产品数据发送到页面。当用户想要进入第2页时,他单击一个按钮 在page2.php上还有一些关于产品的信息,主要是为了结帐。为了显示这些数据,我使用了产品的ID,因此page2.php实际上是page2.php?ID=123。因此,再次使用PHP和MySQL,我可以获得所需的数据 场景2 在page1.php中,我使用php和MySQL将产品数据发送到页面。page2.php所需的值存储在会话中。当用户想要进入第2页时,他单击一个按钮 在p

场景1

在page1.php中,我使用php和MySQL将产品数据发送到页面。当用户想要进入第2页时,他单击一个按钮

在page2.php上还有一些关于产品的信息,主要是为了结帐。为了显示这些数据,我使用了产品的ID,因此page2.php实际上是page2.php?ID=123。因此,再次使用PHP和MySQL,我可以获得所需的数据

场景2

在page1.php中,我使用php和MySQL将产品数据发送到页面。page2.php所需的值存储在会话中。当用户想要进入第2页时,他单击一个按钮

在page2.php now上,使用会话显示有关产品的信息。这次page2.php实际上是page2.php,它显示在地址栏上

我更喜欢在场景1中这样做。用户可以复制/粘贴或通过按钮将页面发送给朋友直接访问。我不认为再打一次db是个问题


您的意见是什么?

我同意情景1更好。在我看来,您应该将会话用于其预期目的,承载特定用户的状态,而不是将其误用为某种形式的缓存机制

这就是为什么您首先要使用数据库,以便高效地访问数据。为什么要尝试围绕实际应该提高效率的东西构建缓存呢


如果访问成为瓶颈,您确实需要研究缓存,那么还有比使用会话更好的机制来实现这一目的。

No.1肯定是更好的方法。第二种方法只有在产品连接到用户会话时才有意义(例如,在执行订单向导时)。即使如此,最好还是将产品ID附加到会话中,并在每个新页面上从数据库中获取产品信息