PHP实现session信息存储到数据库_.docx

上传人:啊飒飒 文档编号:11651189 上传时间:2021-08-28 格式:DOCX 页数:8 大小:12.76KB
返回 下载 相关 举报
PHP实现session信息存储到数据库_.docx_第1页
第1页 / 共8页
PHP实现session信息存储到数据库_.docx_第2页
第2页 / 共8页
PHP实现session信息存储到数据库_.docx_第3页
第3页 / 共8页
PHP实现session信息存储到数据库_.docx_第4页
第4页 / 共8页
PHP实现session信息存储到数据库_.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《PHP实现session信息存储到数据库_.docx》由会员分享,可在线阅读,更多相关《PHP实现session信息存储到数据库_.docx(8页珍藏版)》请在三一文库上搜索。

1、PHP实现session信息存储到数据库_ PHP实现session信息存储到数据库,具体代码如下: /* * session信息存储到数据库的类 * 表结构: * CREATE TABLE IF NOT EXISTS sessioninfo ( * sid varchar(255) NOT NULL, * value text NOT NULL, * expiration timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, * PRIMARY KEY (sid) * ) ENGINE=InnoDB

2、 DEFAULT CHARSET=utf8; */ class MySessionHandler implements SessionHandlerInterface /* * access private * var object 数据库连接 */ private $_dbLink; /* * access private * var string 保存session的表名 */ Private $_sessionTable; /* * access private * var string session名 */ private $_sessionName; /* * const 过期时间

3、 */ const SESSION_EXPIRE = 10; public function _construct($dbLink, $sessionTable) if(!is_object($dbLink) return false; $this-_dbLink = $dbLink; $this-_sessionTable = $sessionTable; /* * 打开 * access public * param string $session_save_path 保存session的路径 * param string $session_name session名 * return i

4、nteger */ public function open($session_save_path, $session_name) $this-_sessionName = $session_name; return 0; /* * 关闭 * access public * return integer */ public function close() return 0; /* * 关闭session * access public * param string $session_id session ID * return string */ public function read($

5、session_id) $query = SELECT value FROM $this-_sessionTable WHERE sid = $session_id AND UNIX_TIMESTAMP(expiration) + . self:SESSION_EXPIRE . UNIX_TIMESTAMP(NOW(); $result = $this-_dbLink-query($query); if(!isset($value) | empty($value) $value = ; return $value; $this-_dbLink-query(UPDATE $this-_sessi

6、onTable SET expiration = CURRENT_TIMESTAMP() WHERE sid = $session_id); $value = $result-fetch_array(); $result-free(); return $valuevalue; /* * 写入session * access public * param string $session_id session ID * param string $session_data session data * return integer */ public function write($session

7、_id, $session_data) $query = SELECT value FROM $this-_sessionTable WHERE sid = $session_id AND UNIX_TIMESTAMP(expiration) + . self:SESSION_EXPIRE . UNIX_TIMESTAMP(NOW(); $result = $this-_dbLink-query($query); $result = $result-fetch_array(); if(!empty($result) $result = $this-_dbLink-query(UPDATE $t

8、his-_sessionTable SET value = $session_data WHERE sid = $session_id); else $result = $this-_dbLink-query(INSERT INTO $this-_sessionTable (sid, value) VALUES ($session_id, $session_data); if($result) return 0; else return 1; /* * 销魂session * access public * param string $session_id session ID * retur

9、n integer */ public function destroy($session_id) $result = $this-_dbLink-query(DELETE FROM $this-_sessionTable WHERE sid = $session_id); if($result) return 0; else return 1; /* * 垃圾回收 * access public * param string $maxlifetime session 最长生存时间 * return integer */ public function gc($maxlifetime) $re

10、sult = $this-_dbLink-query(DELETE FROM $this-_sessionTable WHERE UNIX_TIMESTAMP(expiration) UNIX_TIMESTAMP(NOW() - . self:SESSION_EXPIRE); if($result) return 0; else return 1; /*/ $dbLink = new mysqli(localhost, root, root, test); $sessionTable = sessioninfo; $handler = new MySessionHandler($dbLink, $sessionTable); session_set_save_handler($handler); session_start(); $_SESSIONname = test; echo $_SESSIONname; /session_destroy(); 更多信息请查看IT技术专栏 .

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1