码迷,mamicode.com
首页 > 数据库 > 详细

php中session入库(mysql)机制

时间:2016-09-12 14:10:55      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

seesion的入库(mysql)操作,主要是修改seesion的读取与写入操作

主要是通过 bool session_set_save_handler(seesion_open,seesion_close,session_read,session_write,session_destory,session_gc);

依次对应的是开启seesion连接方式,关闭session,读取session,写拉seesion,销毁session,seesion的垃圾加收机制。

基本实例项目

 

 1 <?php
 2     /*
 3     * 创建数据库
 4     drop DATABASE if EXISTS session;
 5     create DATABASE session CHARSET utf8;
 6     use session;
 7     drop TABLE if EXISTS session;
 8     create table session (
 9     sess_id char(32) UNIQUE NOT NULL,
10     sess_info text,
11     sess_expire int not null default 0
12     )CHARSET utf8 ENGINE INNODB;
13     */
14     //session入库
15     //1. 开启session
16     function sess_open(){
17         //连接mysql
18         mysql_connect(‘localhost‘,‘root‘,‘root‘);
19         mysql_query(‘set names utf8‘);
20         mysql_query(‘use session‘);
21         //查看当前调用了什么方法
22         echo __FUNCTION__.‘<br/>‘;
23     }
24     //2. 关闭session
25     function sess_close(){
26         //关闭mysql
27         mysql_close();
28         echo __FUNCTION__.‘<br/>‘;
29     }
30     //3. 读取session
31     function sess_read($sess_id){
32         //从数据库读取
33         //echo $sess_id;  //这个sess_id,是系统自动生成的
34         //在读取数据的时候我们要过滤掉过期的数据
35         //通过当前时间与系统的session最大周期的差
36         $expire = time() - ini_get(‘seesion.gc_maxlifetime‘);
37         $sql = "select * from session where sess_id = ‘{$sess_id}‘ and sess_expire >= ‘{$expire}‘";
38         $res = mysql_query($sql);
39         echo __FUNCTION__.‘<br/>‘;
40         //得到一个数组
41         if($sess = mysql_fetch_assoc($res)){
42             return $sess[‘sess_info‘];
43         }
44     }
45     // 4.写入操作
46     function sess_write($sess_id,$sess_info){
47         //向数据库中写入session
48         //echo $sess_id.$sess_info;
49         $time = time();
50         $sql = ‘replace into session values(‘{$sess_id}‘,‘{$sess_info}‘,‘{$time}‘)‘;//使用replace主是要因为要重复修改seesion,而sess_id又是UNIQUE
51         echo __FUNCTION__.‘<br>‘;
52         return mysql_query($sql);
53     }
54     //5. 销毁
55     function sess_destroy($sess_id){
56         //删除数据库中信息
57         $sql = "delete from session where sess_id = ‘{$sess_id}‘";
58         echo __FUNCTION__.‘<br>‘;
59         return mysql_query($sql);
60     }
61     //6.回收
62     function sess_gc(){
63         //删除过期的数据
64         $expire = time()-ini_get(‘session.gc_maxlifetime‘);
65         $sql = "delete from session where sess_expire < ‘{$expire}‘";
66         echo __FUNCTION__.‘<br/>‘;
67     }
68     //修改session机制
69 
70     session_set_save_handler($sess_open,$sess_close,$sess_read,$sess_write,$sess_destroy,$sess_gc);
71     //启动session
72     session_start();
73     //加入session数据
74     $_SESSION[‘name‘] = ‘张三‘;
75     $_SESSION[‘age‘]  = ‘25‘;
76     //查看数据
77     //var_dump($_SESSION);
78     //删除session
79     //session_destroy();

 

php中session入库(mysql)机制

标签:

原文地址:http://www.cnblogs.com/he9527/p/5864438.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!