session入数据库类

代码如下:

<?php

   /*
    * session入数据库
    */
   class SessionDB{

     protected $db;              //保存mysql类的对象,因为我在mysqldb类中封装了一些方法。。。
     protected $table;
     /*
      * 将session的处理设置为用户级别
      * 然后使用用户自定义

      *这几个方法是有顺序的
      */
     public function __construct(){

         ini_set('session.save_handler','user');
        session_set_save_handler(
          array($this,'open'),
          array($this,'close'),
          array($this,'read'),
          array($this,'write'),
          array($this,'destroy'),
          array($this,'gc')
       );
      session_start();
     }

   

   public function open(){

        $this->db = Mysql::getinstance($GLOBALS['config']['db']); ///初始化数据库,根据自己实际情况。。。

        $this->table =
 
     }

     public function close(){

       return true;
     }

     public function read($session_id){

          $sql = "select session_data from {$this->table} where session_id ='$session_id' ";
         if($row = $this->db->fetchRow($sql)){
           return $row['session_data'];
         }else{
           return '';
         }
     }

     public function write($session_id,$session_data){

          $time = time();
         $sql = "insert into $this->table values('$session_id','$session_data',$time) on duplicate key update session_data='$session_data' ";
         $this->db->query($sql);
     }

     public function destroy($session_id){

        $sql = "delete from {$this->table} where session_id = '$session_id' ";
        $this->db->query($sql);
     }

     public function gc($max_life){

         $time = time();
         $lefttime = $time - $max_life;
        $sql = "delete from {$this->table} where timestamp < $lefttime";
        $this->db->query($sql);
     }

   }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值