博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP类分享:session保存到数据库
阅读量:6684 次
发布时间:2019-06-25

本文共 2005 字,大约阅读时间需要 6 分钟。

  hot3.png

下面是Session保存到数据库的PHP类,和大家分享下,欢迎拍砖的哈,拍的时候看着点就行哈!

 

_pdo = $pdo; $this->_ip = !empty($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null; $this->_maxLifeTime = ini_get('session.gc_maxlifetime'); } public function open($path,$name) { return true; } public function close() { return true; } public function read($id) { $sql = 'SELECT * FROM session where PHPSESSID = ?'; $stmt = $this->_pdo->prepare($sql); $stmt->execute(array($id)); if (!$result = $stmt->fetch(PDO::FETCH_ASSOC)) { return null; } elseif ($this->_ip != $result['client_ip']) { return null; } elseif ($result['update_time']+$this->_maxLifeTime < time()){ $this->destroy($id); return null; } else { return $result['data']; } } public function write($id,$data) { $sql = 'SELECT * FROM session where PHPSESSID = ?'; $stmt = $this->_pdo->prepare($sql); $stmt->execute(array($id)); if ($result = $stmt->fetch(PDO::FETCH_ASSOC)) { if ($result['data'] != $data) { $sql = 'UPDATE session SET update_time =? , date = ? WHERE PHPSESSID = ?'; $stmt = $this->_pdo->prepare($sql); $stmt->execute(array(time(), $data, $id)); } } else { if (!empty($data)) { $sql = 'INSERT INTO session (PHPSESSID, update_time, client_ip, data) VALUES (?,?,?,?)'; $stmt = $this->_pdo->prepare($sql); $stmt->execute(array($id, time(), $this->_ip, $data)); } } return true; } public function destroy($id) { $sql = 'DELETE FROM session WHERE PHPSESSID = ?'; $stmt = $this->_pdo->prepare($sql); $stmt->execute(array($id)); return true; } public function gc($maxLifeTime) { $sql = 'DELETE FROM session WHERE update_time < ?'; $stmt = $this->_pdo->prepare($sql); $stmt->execute(array(time() - $maxLifeTime)); return true; } } try{ $pdo = new PDO('mysql:host=localhost;dbname=rphp4zf', 'root','rickyfeng'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); new SessionToDB($pdo); } catch(PDOException $e) { echo 'Error: '.$e->getMessage(); }来源:豆芽博客,地址:http://www.aichengxu.com/article/PHP/567_1.html保留原文链接,是开源分享的开始.

转载于:https://my.oschina.net/ruthon/blog/71101

你可能感兴趣的文章
wordpres搭建
查看>>
c++动态内存开辟之 new 的三种形态
查看>>
R语言实战(十)处理缺失数据的高级方法
查看>>
HP data protector的运作过程和名词解释
查看>>
rsync配置教程
查看>>
css优先级详解
查看>>
小白第三天
查看>>
2016年linux运维人员必会开源运维工具体系
查看>>
理性分析Python和C#哪个更有前途?
查看>>
mysql主备复制I/O线程不能同步问题
查看>>
高速缓存dns
查看>>
安装lenovo SR860 7x69服务器遇到的坑
查看>>
MIT透过机器学习技术用胺基酸预测蛋白质结构
查看>>
python课堂笔记之django-day01(8)
查看>>
Hadoop之HDFS分布式文件系统具有哪些优点?
查看>>
小型企业公司路由器做DHCP服务器
查看>>
愿不负青春 历经风雨 归期我们仍是少年|六一大童节
查看>>
洞悉物联网发展1000问之物联网与大数据,人工智能到底是什么关系?
查看>>
JAVA数组和面向对象
查看>>
NVisionXR_iOS教程四 —— 在立方体上贴材质
查看>>