micheledef/pdo-session-handler

使用PDO和SessionHandlerInterface接口在数据库中存储数据

v1.0.0 2023-03-13 10:52 UTC

This package is auto-updated.

Last update: 2024-09-03 17:49:10 UTC


README

使用PDO和SessionHandlerInterface接口在数据库中存储会话数据

通过Composer安装

composer require micheledef/pdo-session-handler

创建会话表

CREATE TABLE session ( 
`id` varchar(256) NOT NULL, 
`name` varchar(256) NOT NULL,
`value` longtext, 
`last_update` int(11) NOT NULL, 
PRIMARY KEY (`id`,`name`) ) ENGINE = INNODB;

要使用PDOSessionHandler会话处理程序,需要使用session_set_save_handler()函数,该函数接受一个实现了SessionHandlerInterface接口的类作为输入参数,因此在我们的情况下,我们将按以下方式进行

快速入门

<?php

require 'vendor/autoload.php';

use Micheledef\PdoSessionHandler\PDOSessionHandler;

$username = "username";
$password = "password";
$databasename = "databasename";

$pdo = new PDO(
    "mysql:dbname=$databasename;host=localhost;",
    $username,
    $password
);
session_set_save_handler(new PDOSessionHandler($pdo));

要开始使用此数据处理器进行会话,只需执行session_start()函数

<?php

session_start();

这样,对$_SESSION全局数组的任何修改或读取都将导致对先前看到的会话表中存储的会话数据的修改,此模式可用于在多个服务器之间共享会话数据。