session入库实现

<?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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值