PHP会话与数据库会话

时间:2011-08-21 18:38:50

标签: php session

我涉猎PHP。在我完成的项目中,我总是使用数据库和cookie来处理会话。我已经看到“会话功能”,例如session_start()也在其他来源中使用。我只是好奇,哪个更好?我应该使用其中一种吗?

3 个答案:

答案 0 :(得分:1)

我建议使用内置会话功能,因为您不必手动编写所有会话处理代码。默认情况下,会话状态存储在文件中,但您也可以更改它,例如使用session_set_save_handler到数据库。

答案 1 :(得分:1)

嗯,我用了三种方式来度过时间:

  1. 传统的$_COOKIE方式,意味着您实际使用Cookie来存储值
  2. “新”$_SESSION - 方式,您可以使用可能依赖于Cookie的关联数组
  3. $_SESSION与数据库结合使用,可以在用户的​​基础上控制会话。
  4. 我更喜欢使用选项#3,因为它使我能够“即时”更改会话,以及更轻松地跟踪登录用户。

    选项#3将按以下方式播放(半伪):

    <?php
        //Start the session
        session_start();
    
        //Get the session data
        $_SESSION['user'] = retrieveSessionDataFromDB($_SESSION['user']['unique_id']);
    
        //Profit
    ?>
    

答案 2 :(得分:0)

出于几个原因,我绝对会使用PHP会话

  1. 第一个原因是PHP Sessions可以使用本机方法轻松管理。还有许多库允许非常强大的会话管理,例如Zend_Session

  2. PHP会话更具可扩展性。一旦您的应用程序开始增长,使用MySQL作为您的数据存储可能是您最大的瓶颈。在内存中存储会话将允许您水平缩放以进行补偿。存储在数据库中可能会给您的数据库带来比其需要更多的压力。

  3. 通常情况下,对于小型应用程序而言并不重要,但如果您计划增长,我肯定会使用PHP会话。