龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php session数据库类

时间:2014-09-12 02:49来源:网络整理 作者:网络 点击:
分享到:
session数据库类 配制lt;?php/*配制*/$config=array(/* 数据库设置 */#39;DB_TYPE#39; =gt; #39;mysql#39;, // 数据库类型#39;DB_HOST#39; =gt; #39;localhost#39;, // 服务器地址#39;DB_NAME#39; =gt; #39;php#39;, // 数据库名#3

配制

<?php

/配制/

$config=array(

/ 数据库设置 /

'DB_TYPE' => 'mysql', // 数据库类型

'DB_HOST' => 'localhost', // 服务器地址

'DB_NAME' => 'php', // 数据库名

'DB_USER' => 'root', // 用户名

'DB_PWD' => '123', // 密码

'DB_PREFIX' => 'jiaodu_', // 数据库表前缀

'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8

/ SESSION设置 /

'SESSION_START' => 'user', //session方式,文件方式:file, 数据库设置为user

<?php
/**
 * session类
 * @author 角度 QQ:1286522207
 *
 */
class session extends Action{
    private $session_db;
    private $session_Overdue;
    private $db_tablename;//数据库名称
    function __construct(){
        $this->session_Overdue=3600;
        $this->session_db= $this->db();
    }
    /**
     * 打开
     */
    public function open() {
        return true;
    }
    /**
     * 关闭
     */
    public function close() {
        return true;
    }
    /**
     * 读取
     */
    public function read($id) {
        $where['id']=$id;
        $this->session_db->M('session');
        $value=$this->session_db->find($where);
        if ($value) {
            return $value['data'];
        } else {
            return "";
        }
    }
    /**
     * 写入
     */
    public function write($id, $datas) {
        $where['id']=$id;
        $date['data']=$datas;
        $date['time']=time()+$this->session_Overdue;
        $date['ip']=$this->session_db->get_client_ip();
        if (empty($_SESSION['user_id'])){
            $date['user']=0;
        }else {
            $date['user']=$_SESSION['user_id'];
        }
        $this->session_db->M('session');
        $up=$this->session_db->Update($date, $where);
        if ($up){
            return true;
        }else {
            $date['id']=$id;
            $this->session_db->Insert($date);
            return true;
        }
    }
    /**
     * 摧毁
     */
    public function destroy($id) {
        $where['id']=$id;
        return $this->session_db->Delete($where);
    }
    /**
     * 回收
     */
    public function gc($max) {
        return true;
    }
    function __destruct(){
        $this->session_db->Delete("`time`<'".time()."'");
    }
}
ini_set ( 'session.save_handler',$config['SESSION_START']);
$session = new session ();
session_set_save_handler ( array ($session, 'open' ), array ($session, 'close' ), array ($session, 'read' ), array ($session, 'write' ), array ($session, 'destroy' ), array ($session, 'gc' ) );
session_start();
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接