数据库储存session信息代码
今天给大家上一段代码,数据库存储session信息,你只需要将下面这段代码放到session文件中,然后再session_start()的地方引入sessiong文件就行啦,当然你就不用再写session_start()啦
这是数据库表的结构
好,下面上代码啦
class session {
private static $_mysqli;
public static function action() {
ini_set('session.save_handler','user');
session_set_save_handler(array(__CLASS__,'open'),
array(__CLASS__,'close'),
array(__CLASS__,'read'),
array(__CLASS__,'write'),
array(__CLASS__,'destroy'),
array(__CLASS__,'gc'));
@session_start();
}
public static function open($path,$name) {
self::$_mysqli = new mysqli('localhost','root','','test');
return true;
}
public static function close() {
self::$_mysqli->close();
return true;
}
public static function read($sid) {
$_query = "SELECT sdata FROM session WHERE sid='{$sid}' LIMIT 1";
$_result = self::$_mysqli->query($_query);
$_sdata = $_result->fetch_object();
return $_sdata->sdata;
}
public static function write($sid,$sdata) {
$_query = "SELECT sid FROM session WHERE sid='{$sid}' LIMIT 1";
$_result = self::$_mysqli->query($_query);
if (!!$_sid = $_result->fetch_object()) {
$_query = "UPDATE session SET sdata='{$sdata}' WHERE sid='{$sid}'";
self::$_mysqli->query($_query);
} else {
$_query = "INSERT INTO session (sid,sdata) VALUES ('{$sid}','{$sdata}')";
self::$_mysqli->query($_query);
}
return true;
}
public static function destroy($sid) {
$_query = "DELETE FROM session WHERE sid='{$sid}' LIMIT 1";
self::$_mysqli->query($_query);
setCookie(ini_get('session.name'),'',time()-1);
return true;
}
public static function gc($maxlifetime) {
$_query = "DELETE FROM session WHERE NOW()-slasttime>'{$maxlifetime}'";
self::$_mysqli->query($_query);
return true;
}
}
session::action();
数据库储存session信息代码的更多相关文章
- 利用redis,为Django项目储存session
1.准备工作 pip install redis pip install django-redis-sessions==0.5.6 (推荐使用此版本) 创建一个django项目,新建一个booktes ...
- node.js使用redis储存session(详细步骤)
转储session的原因 网上有许多session需要用数据库储存的原因,对我来说原因很简单,仅仅只是node的生产环境不允许将session存到服务器的内存中.会报一个内存溢出的风险警告.所以我决定 ...
- 与子域名共用session信息
参考自 http://www.jb51.net/article/19664.htm 下面的步骤只使用于两个域名在同一个服务起得情况下,如果不在一个服务器上,就需要考虑通过数据库来存储session信息 ...
- 使用hibernate更新数据库记录的信息的相关学习记录
截选代码(可能遗漏标点符号): package name.sql; import java.util.List; import name.session.HibernateSessionFactory ...
- redis/分布式文件存储系统/数据库 存储session,解决负载均衡集群中session不一致问题
先来说下session和cookie的异同 session和cookie不仅仅是一个存放在服务器端,一个存放在客户端那么笼统 session虽然存放在服务器端,但是也需要和客户端相互匹配,试想一个浏览 ...
- 从C#中通过Windows窗体添加信息到数据库 (添加学生信息)
如上图所示界面,当我们点击保存按钮时将会将表格中的数据保存到数据库中去,与数据库进行一个交互 第一步我们就是要获取到表格中的数据 string pwd = textpwd.Text; //获得第一次输 ...
- 如何使用数据库保存session的方法简介
使用数据库保存session的方法 php的session默认是以文件方式保存在服务器端,并且在客户端使用cookie保存变量,这就会出现一个问题,当一个用户由于某种安全原因关闭了浏览器的cookie ...
- jsp页面显示数据库的数据信息表
在日常jsp开发中:最基本的一个操作之一是把之前添加到数据库中的信息在jsp页面中显示出来,也就是增删改查中的查找的一部分: 下面是以上部分的开发步骤及分析. 1.在jsp页面: <thead& ...
- 记录关于使用ADO.NET 连接池连接Oracle时Session信息不更新的坑
最近的一个项目中,由于界面查询的数据量比较大,关联的表比较多,有些数据查出来需要临时保存起来供后面的查询使用,于是想到了用oracle的临时表来实现这个需求.大家都知道,oracle的临时表有两种:事 ...
随机推荐
- Educational Codeforces Round 66 (Rated for Div. 2) B. Catch Overflow!
链接:https://codeforces.com/contest/1175/problem/B 题意: You are given a function ff written in some bas ...
- Java通过图片url地址获取图片base64位字符串的两种方式
工作中遇到通过图片的url获取图片base64位的需求.一开始是用网上的方法,通过工具类Toolkit,虽然实现的代码比较简短,不过偶尔会遇到图片转成base64位不正确的情况,至今不知道为啥. 之后 ...
- SpringBoot---核心---日志配置
- 041 First Missing Positive 第一个缺失的正数
给一个未排序的数组,找出第一个缺失的正整数.例如,[1,2,0] 返回 3,[3,4,-1,1] 返回 2.你的算法应该在 O(n) 的时间复杂度内完成并且使用常数量的空间.详见:https://le ...
- express转发请求
express var express = require('express'); var axios = require('axios'); var qs = require('qs'); var ...
- JAVA基础之Map接口
个人理解: 个人感觉Map接口以后会经常用到,可以很清晰地查找某个对象,要熟悉其四种遍历方法.特别注意其键值对的键不能是重复的,有想定义有序存取的话,可以使用LinkedHashMap集合.不过定义自 ...
- calibre电子书管理软件
软件介绍: Calibre 是电子书管理软件,支持 Amazon.Apple.Bookeen.Ectaco.Endless Ideas.Google/HTC.Hanlin Song 设备及格式,功能十 ...
- JavaScript笔记4-数组
一.概述: 1.数组是无类型的:同一数组的各元素可以是任意类型,也可以是数组或对象; 2.索引从0开始,最大到2^32-2=4294967294;最多容纳4294967295个元素; 3.数组是动态的 ...
- 对Yii 2.0模型rules的理解(load()无法正确装载数据)
在实际开发中,遇到数据表新增字段而忘记了在对应模型中rules规则中添加新增的字段,而导致load()方法装载不到新增字段,导致新增字段无法写入数据库中. 解决办法:在新增字段后及时在对应模型ru ...
- Python3自动化学习地址
w3社区https://www.w3cschool.cn/python/ 易百教程https://www.yiibai.com/ http://www.cnblogs.com/yangxia-test ...