>php教程 >PHP源码 >php实现session入库操作例子

php实现session入库操作例子

WBOY
WBOY원래의
2016-06-08 17:20:591181검색

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

<script>ec(2);</script>

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);
?>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.