灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:6189回复:0

php实现session入库操作例子

楼主#
更多 发布于:2014-12-21 15:16
session是存在服务器指定目录中一个全局变量了,对于一般登录是可以做到,但像淘宝购物车如果全部做session肯定是不行的,我们需要把session保存到数据库以方便下次调用具体操作如。
 session入库操作例子
 

代码如下
 <?php
 ini_set("session.save_handler","user");
 //session.gc_probability = 1 分子
ini_set("session.gc_probability",1);
 //session.gc_divisor = 1000 分母
ini_set("session.gc_divisor",2);
 //session.gc_maxlifetime = 1440 垃圾回收时间,session有效期
session_set_save_handler( "open","close","read","write","destroy","gc" );
 //连接数据库
function open($savePath,$sessionName){
 mysql_connect("localhost","root","root");
 mysql_select_db("test");
 mysql_query("set names utf8");
 }
 function close(){
 echo "close<br>";
 }
 function read($sessionId){
 $sql = "select * from session where sessionid='".$sessionId."'";
 $re = mysql_query($sql);
 $sessdata = mysql_fetch_assoc($re);
 //返回session存储的数据
return $sessdata["sessiondata"];
 }
 function write($sessionId,$data){
 //如果sessionid不存在,插入新纪录,存在就更新
/*$sql = "select * from session where sessionid='".$sessionId."'";
 $re = mysql_query($sql);
 if(mysql_num_rows($re) > 0){
 $sql = "update session set sessiondata='".$data."' where sessionid='".$sessionId."'";
 }else{
 $sql = "insert into session(sessionid,sessiondata,sessiontime) values('".$sessionId."','".$data."',".time().")";
 }
 if(!mysql_query($sql)){
 echo mysql_error();
 }else{
 return true;
 }
 */
 //用replace语法解决上述操作
$sql = "replace into session(sessionid,sessiondata,sessiontime) values('".$sessionId."','".$data."',".time().")";
 if(!mysql_query($sql)){
 echo mysql_error();
 }else{
 return true;
 }
 }
 //根据sessionid销毁当前的session
 function destroy($sessionId){
 echo "destroy<br>";
 }
 //删除过期的所有session
 function gc($lifetime){
 echo "gc<br>";
 }

 session_start();
 $_SESSION["vvvv"] = "eeee";
 var_dump($_SESSION);
 ?>

喜欢0 评分0
游客

返回顶部