首页 > 代码库 > php中session入库(mysql)机制
php中session入库(mysql)机制
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 012 )CHARSET utf8 ENGINE INNODB;13 */14 //session入库15 //1. 开启session16 function sess_open(){17 //连接mysql18 mysql_connect(‘localhost‘,‘root‘,‘root‘);19 mysql_query(‘set names utf8‘);20 mysql_query(‘use session‘);21 //查看当前调用了什么方法22 echo __FUNCTION__.‘<br/>‘;23 }24 //2. 关闭session25 function sess_close(){26 //关闭mysql27 mysql_close();28 echo __FUNCTION__.‘<br/>‘;29 }30 //3. 读取session31 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 //向数据库中写入session48 //echo $sess_id.$sess_info;49 $time = time();50 $sql = ‘replace into session values(‘{$sess_id}‘,‘{$sess_info}‘,‘{$time}‘)‘;//使用replace主是要因为要重复修改seesion,而sess_id又是UNIQUE51 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 //启动session72 session_start();73 //加入session数据74 $_SESSION[‘name‘] = ‘张三‘;75 $_SESSION[‘age‘] = ‘25‘;76 //查看数据77 //var_dump($_SESSION);78 //删除session79 //session_destroy();
php中session入库(mysql)机制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。