轻松地将PHP会话保存在MySQL数据库

banq 17-02-28

PHP-MySQL-Sessions能够轻松地将PHP会话保存在MySQL数据库,

会话中包含的是和用户唯一标识相关联的数据。通常,PHP默认在服务器上的本地文件系统中存储会话变量。虽然这对于许多运行中小型PHP应用程序的人来说是可以接受的,但是如果一些较大的应用程序需要负载平衡,将负载均衡在多个服务器上运行。在这种情况下,运行PHP的每个服务器都需要一种方法来确保能访问到用户会话以继续正常工作,如果会话还是保存在每个服务器的本地文件系统,那么就要在多个服务器之间传送会话中数据。

如果将会话数据统一保存在MySQL数据库,实现多个服务器共享,它们使用PHP对MySQL数据库中的表执行打开,读取,写入和销毁会话变量数据的操作。Web应用程序可以获得诸如会话管理,会话日志记录和会话交互等优势。

使用方法:
1.在MySQL建立会话数据库

CREATE TABLE sessions
(
id varchar(32) NOT NULL,
access int(10) unsigned,
data text,
PRIMARY KEY (id)
);


2.编辑database.class.php,改变设置:
define("DB_HOST", "localhost");
define("DB_USER", "yourusername");
define("DB_PASS", "1234567890");
define("DB_NAME", "yourdbname");

3.在PHP头部定义:
include("database.class.php"); //Include MySQL database class
include("mysql.sessions.php"); //Include PHP MySQL sessions
$session = new Session(); //Start a new PHP MySQL session

存储会话变量数据:
//Store variable as usual
$_SESSION['user'] = "johnsmith@example.com";

获得会话数据:
//Show stored user
echo $_SESSION['user'];

销毁会话,用户退出时使用:
//Clear session data (only data column)
session_unset();
//Destroy the entire session
session_destroy();


GitHub - dominicklee/PHP-MySQL-Sessions: Easily st