今天給大家上一段代碼,數據庫存儲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();
新聞熱點
疑難解答