在php中设置数据库中的会话

在php中设置数据库中的会话,php,Php,如何将数据库表中的会话与php和mysql一起使用?您可以在php.ini中的session\u handler指令下控制它。查看以轻松浏览(以前使用过)。您需要使用来编写自定义的打开、关闭、读取、写入、销毁和垃圾收集函数。您需要创建如下对象: class SessionHandler { private static $lifetime = 0; private function __construct() //object constructor {

如何将数据库表中的会话与php和mysql一起使用?

您可以在
php.ini
中的
session\u handler
指令下控制它。查看以轻松浏览(以前使用过)。

您需要使用来编写自定义的打开、关闭、读取、写入、销毁和垃圾收集函数。

您需要创建如下对象:

class SessionHandler 
{ 
    private static $lifetime = 0; 

    private function __construct() //object constructor
    { 
       session_set_save_handler(
           array($this,'open'),
           array($this,'close'),
           array($this,'read'),
           array($this,'write'),
           array($this,'destroy'),
           array($this,'gc')
       );
    }

   public function start($session_name = null)
   {
       session_start($session_name); //Start it here
   }

    public static function open()
    {
        //Connect to mysql, if already connected, check the connection state here.

        return true;
    }

    public static function read($id)
    {
        //Get data from DB with id = $id;
    }

    public static function write($id, $data)
    {
        //insert data to DB, take note of serialize
    }

    public static function destroy($id)
    {
       //MySql delete sessions where ID = $id
    }

    public static function gc()
    {
        return true;
    }
    public static function close()
    {
        return true;
    }
    public function __destruct()
    {
        session_write_close();
    }
}
然后在课程开始之前,请启动本课程

include 'classes/sessionHandlerDB.php';

$session = new SessionHandler();

$session->start('userbase');

$_SESSION['name'] = 'Robert Pitt'; //This is sent to SessionHandler::write('my_id','Robert Pitt')
echo $_SESSION['name']; //This calls SessionHandler::read($id)//$id is Unique Identifier for that


请参阅我的github代码片段,了解PHP 5.4中数据库驱动的会话管理类。

您能给我们提供更多信息吗?你到底打算如何处理这些会话?你可能想先在谷歌上搜索。例如,它将为您提供的第一个链接之一是:通常会话存储在服务器中的临时文件中。我想将会话存储在数据库表中。您能告诉我如何使用此代码设置会话吗?与正常会话设置有什么不同吗?基本上你使用$\u会话。。。这将查询SessionHandler,这意味着会话处理程序是中间人,它存储数据并返回数据,如果您应用自己的处理程序,您可以以任何方式存储它,DB、File等执行此操作将告诉PHP,当您使用会话查询此类数据时。只要包含此文件并创建其实例,您所做的所有其他操作都不会更改,存储方法将为DB。我更新了我的帖子,请看一下这段代码也是一个很好的例子,我会将它扩展为一个存储对象,这样可以减少对db的调用,也可以看看MemCached!