·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> 数据库储存session信息代码

数据库储存session信息代码

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
数据库储存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();