session入库实现

来源:互联网 发布:windows7优化开机速度 编辑:程序博客网 时间:2024/04/30 12:02
<?php/** * session 入库     * 创建数据库 *      drop DATABASE if EXISTS session;     create DATABASE session CHARSET utf8;     use session;     drop TABLE if EXISTS session;     create table session (     sess_id char(32) UNIQUE NOT NULL,     sess_info text,     sess_expire int not null default 0    )CHARSET utf8 ENGINE INNODB; */class MySessionHandler implements SessionHandlerInterface{    private static $_link = null;    public function open($save_path, $name)    {        if(is_null(self::$_link)) {            self::$_link = mysqli_connect("127.0.0.1", 'root', 8888, 'session');        }        if(!self::$_link) {            return false;        }        return true;    }    public function read($session_id)    {        $sql = "SELECT * FROM session WHERE sess_id = '{$session_id}'";        $result = mysqli_query(self::$_link, $sql);        if($row = mysqli_fetch_assoc($result)) {            return $row['sess_info'];        }        return '';    }    public function write($session_id, $session_data)    {        $time = time();        $sql = "REPLACE INTO session (sess_id, sess_info, sess_expire) VALUES ('{$session_id}', '{$session_data}', $time)";        return mysqli_query(self::$_link, $sql);    }    public function destroy($session_id)    {        $sql = "DELETE FROM session WHERE sess_id='{$session_id}'";        return mysqli_query(self::$_link, $sql);    }    public function gc($maxlifetime)    {        $time = time() - ini_get('session.gc_maxlifetime');        $sql = "DELETE FROM session WHERE sess_expire < {$time}";        return mysqli_query(self::$_link, $sql);    }    public function close()    {        mysqli_close(self::$_link);        return true;    }}$sessionHandler = new MySessionHandler();session_set_save_handler($sessionHandler, true);session_start();
0 0
原创粉丝点击