php session 写入数据库,phpsession

本文实例介绍了php session 写入数据库的方法,分享给大家供大家参考,具体内容如下

config = $args;

$this->maxlifetime = get_cfg_var("session.gc_maxlifetime");

session_set_save_handler(

array($this, "open"),

array($this, "close"),

array($this, "read"),

array($this, "write"),

array($this, "destroy"),

array($this, "gc"));

}

public function open() {

$this->link = mysqli_connect(

$this->config['host'],

$this->config['user'],

$this->config['password'],

$this->config['database']);

mysqli_set_charset($this->link, "utf8");

$sql = 'CREATE TABLE IF NOT EXISTS `%s` (

`session_id` varchar(255) NOT NULL,

`session_data` text,

`session_expires` char(10) NOT NULL,

PRIMARY KEY (`session_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;';

$sql = sprintf($sql, $this->config['table']);

mysqli_query($this->link, $sql);

return true;

}

public function close() {

return true;

}

public function read($session_id) {

if(empty($session_id)) return null;

$sql = 'SELECT `session_data` AS `data` FROM `%s` WHERE `session_id` = "%s" AND `session_expires` > "%u"';

$sql = sprintf($sql,

mysqli_real_escape_string($this->link, $this->config['table']),

mysqli_real_escape_string($this->link, $session_id),

time());

$result = mysqli_query($this->link, $sql);

$row = mysqli_fetch_assoc($result);

return $row['data'];

}

public function write($session_id, $session_data) {

if(empty($session_id)) return null;

$newExpires = time() + $this->maxlifetime;

$sql = 'REPLACE INTO `%s` SET `session_id` = "%s", `session_data` = "%s", `session_expires` = "%u"';

$sql = sprintf($sql,

mysqli_real_escape_string($this->link, $this->config['table']),

mysqli_real_escape_string($this->link, $session_id),

mysqli_real_escape_string($this->link, $session_data),

$newExpires);

$result = mysqli_query($this->link, $sql);

return mysqli_affected_rows($this->link);

}

public function destroy($session_id) {

$sql = 'DELETE FROM `%s` WHERE `session_id` = "%s"';

$sql = sprintf($sql,

mysqli_real_escape_string($this->link, $this->config['table']),

mysqli_real_escape_string($this->link, $session_id));

$result = mysqli_query($this->link, $sql);

return mysqli_affected_rows($this->link);

}

public function gc() {

$sql = 'DELETE FROM `%s` WHERE `session_expires` < "%u"';

$sql = sprintf($sql,

mysqli_real_escape_string($this->link, $this->config['table']),

time());

$result = mysqli_query($this->link, $sql);

return mysqli_affected_rows($this->link);

}

}

class session {

public static $collection = null;

public static function open($clean = false, $token = false) {

if($clean) ob_end_clean();

if($token) session_id($token);

session_start();

self::$collection = $_SESSION;

}

public static function id() {

$num_args = func_num_args();

if($num_args) {

$args = func_get_arg(0);

return session_id($args);

}else{

return session_id();

}

}

public static function get($name) {

return isset($_SESSION[$name]) ? $_SESSION[$name] : null;

}

public static function set($name, $value) {

$_SESSION[$name] = $value;

return true;

}

public static function delete($name) {

if(!isset($_SESSION[$name])) return null;

unset($_SESSION[$name]);

return true;

}

public static function destroy() {

session_destroy();

}

}

$config = array(

"host"=> "127.0.0.1",

"user"=> "root",

"password"=> "123456",

"database"=> "test",

"charset"=> "utf8",

"table"=> "user_session");

session_handler::init($config);

session::open();

session::set("profile", array("id"=> 1, "user"=> "haowei", "vip-level"=> 6));

以上就是本文的全部内容,希望对大家的学习有所帮助。

您可能感兴趣的文章:PHP用mysql数据库存储session的代码

Session保存到数据库的php类分享

php把session写入数据库示例

PHP独立Session数据库存储操作类分享

php中使用session_set_save_handler()函数把session保存到MySQL数据库实例

PHP将session信息存储到数据库的类实例

php实现将Session写入数据库

php基于session实现数据库交互的类实例

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php session写入数据库_php session 写入数据库,phpsession相关推荐

  1. mysql 取出全部数据库_php取出mysql数据库中所有数据

    今天遇到一个需求需要看看数据库中是否含有某个数据,但一看数据库表,200多个,一个一个看实在不明智,于是写了一个显示数据库数据的php,只要改下密码和你要数据库,所有数据就清晰显示了,有需求的可以用用 ...

  2. php如何删除数据mysql数据库_php如何删除数据库

    php如何删除数据库 1.首先查看有哪些数据库 2.使用php删除test2<?php $dbhost = 'localhost'; // mysql服务器主机地址 $dbuser = 'roo ...

  3. php 管理mysql数据库_php管理mysql数据库类

    class MySQL_DB { private $last_query;    //上一次执行的sql指令 private $conn;            //当前连接数据库服务器的资源类型 p ...

  4. php 复制mysql数据库_PHP连接MySQL数据库的三种方式

    本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql.mysqli.pdo),结合实例形式分析了PHP基于mysql.mysqli.pdo三种方式连接MySQL数据库的相关操作技巧与 ...

  5. php c 链接mysql数据库_PHP连接MySQL数据库

    php连接MySQL数据库的两种编码方式 PHP连接MySQL数据库的方式 面向过程的编码风格 //一.面向过程的编码风格 //1.PHP与MySQL建立连接 /*语法mysqli_connect(h ...

  6. 用php创建数据库代码,php创建数据库_PHP MySQL 创建数据库与表示例

    摘要 腾兴网为您分享:PHP MySQL 创建数据库与表示例,掌上新华,携程,小牛,苏宁易购等软件知识,以及死神觉醒ios,花视频,s3云存储,华为谷歌器,学成网,cf掌上,互刷天下,抖音批量,润乾报 ...

  7. redis/分布式文件存储系统/数据库 存储session,解决负载均衡集群中session不一致问题...

    先来说下session和cookie的异同 session和cookie不仅仅是一个存放在服务器端,一个存放在客户端那么笼统 session虽然存放在服务器端,但是也需要和客户端相互匹配,试想一个浏览 ...

  8. 【Session】Tomcat中Session持久化到文件系统或数据库

    参考的优秀文章 Tomcat Session 持久化 Package org.apache.catalina.session 最近同事在做Session外置的功能,我对Session持久化.共享也不太 ...

  9. aspx写入mysql_Asp.net用户登陆数据库验证与注册写入数据库

    1.思路与效果图 Index.aspx 注册 注册成功 登陆 登陆验证通过进入内容页1 登陆没通过验证 思路:首先建一个Sqlserver数据库Student,再建一个student表(name,pw ...

最新文章

  1. Github android客户端源代码分析之一:环境搭建
  2. pythonpath manager_python 路径操作工具 pathlib,比 os 模块好用太多
  3. Linux用一键安装包快速部署禅道项目管理平台
  4. 微信小程序有关于Linux的吗,微信小程序可以跳转到手机 app 啦!
  5. 自疫情暴发以来,99%的中国IT决策者认为数据变得更重要
  6. 栈、堆、静态存储区的三分天下
  7. JavaWeb篇-谷歌验证码的使用
  8. WordPress伪原创工具-更新网站一键伪原创发布软件
  9. 网站死链接检测查询工具
  10. FastDFS - 分布式文件存储系统
  11. 一个数的0次方意义思考
  12. 程序员就是这么皮,逆向Google maps snake游戏
  13. 字节跳动2018校招前端面试题
  14. 高通TrueWireless Mirroring无缝的用户体验镜像技术
  15. 从事GIS开发多年,2017年对GIS行业的心得,尤其对三维GIS的理解 1
  16. python 提取元组中的值_如何从Python元组中提取数据?
  17. python识别颜色并提取轮廓_pythonopencv检测并提取目标颜色
  18. zjyxmdshoes
  19. gog无效的验证码_如何退款GOG游戏
  20. 新浪服务器安装系统,IBM System X 服务器 MicroSoft系统安装实战

热门文章

  1. Angular getOrCreateInjectable的实现原理调试
  2. SAP Fiori应用发生超时错误的一个可能原因
  3. 如何使用SAP Cloud for Customer的Key User Tool将Mashup添加到UI上
  4. SAP云平台上的Mendix服务 - 如何注册帐号
  5. odata协议里filter操作自带的函数 - endswith
  6. wizard generated application - how is detail page rendered
  7. header response in Genil
  8. SAP云平台CloudFoundry环境下的环境变量使用
  9. 给Sublime Text2安装GraphQL语法高亮插件
  10. 当我们在UI上点add button增加新的search criteria之后,是framework做的处理把新的row render出来