輕鬆地將PHP會話儲存在MySQL資料庫

banq發表於2017-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)
);
<p class="indent">


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

相關文章