資料庫儲存session資訊代碼,儲存session代碼
今天給大家上一段代碼,資料庫儲存session資訊,你只需要將下面這段代碼放到session檔案中,然後再session_start()的地方引入sessiong檔案就行啦,當然你就不用再寫session_start()啦
這是資料庫表的結構
好,下面上代碼啦
class session {
private static $_mysqli;
public static function action() {
ini_set('session.save_handler','user');
session_set_save_handler(array(__CLASS__,'open'),
array(__CLASS__,'close'),
array(__CLASS__,'read'),
array(__CLASS__,'write'),
array(__CLASS__,'destroy'),
array(__CLASS__,'gc'));
@session_start();
}
public static function open($path,$name) {
self::$_mysqli = new mysqli('localhost','root','','test');
return true;
}
public static function close() {
self::$_mysqli->close();
return true;
}
public static function read($sid) {
$_query = "SELECT sdata FROM session WHERE sid='{$sid}' LIMIT 1";
$_result = self::$_mysqli->query($_query);
$_sdata = $_result->fetch_object();
return $_sdata->sdata;
}
public static function write($sid,$sdata) {
$_query = "SELECT sid FROM session WHERE sid='{$sid}' LIMIT 1";
$_result = self::$_mysqli->query($_query);
if (!!$_sid = $_result->fetch_object()) {
$_query = "UPDATE session SET sdata='{$sdata}' WHERE sid='{$sid}'";
self::$_mysqli->query($_query);
} else {
$_query = "INSERT INTO session (sid,sdata) VALUES ('{$sid}','{$sdata}')";
self::$_mysqli->query($_query);
}
return true;
}
public static function destroy($sid) {
$_query = "DELETE FROM session WHERE sid='{$sid}' LIMIT 1";
self::$_mysqli->query($_query);
setCookie(ini_get('session.name'),'',time()-1);
return true;
}
public static function gc($maxlifetime) {
$_query = "DELETE FROM session WHERE NOW()-slasttime>'{$maxlifetime}'";
self::$_mysqli->query($_query);
return true;
}
}
session::action();
http://www.bkjia.com/PHPjc/1014828.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1014828.htmlTechArticle資料庫儲存session資訊代碼,儲存session代碼 今天給大家上一段代碼, 資料庫儲存session資訊 ,你只需要將下面這段代碼放到session檔案中,然...