Home  >  Article  >  php教程  >  php实现session入库操作例子

php实现session入库操作例子

WBOY
WBOYOriginal
2016-06-08 17:20:591034browse

session是存在服务器指定目录中一个全局变量了,对于一般登录是可以做到,但像淘宝购物车如果全部做session肯定是不行的,我们需要把session保存到数据库以方便下次调用具体操作如。

session入库操作例子

 代码如下 复制代码

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
";
}
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
";
}
 
//删除过期的所有session
function gc($lifetime){
    echo "gc
";
}
 
 
session_start();
 
$_SESSION["vvvv"] = "eeee";
var_dump($_SESSION);
?>

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn