一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - Session保存到數據庫的php類分享

Session保存到數據庫的php類分享

2019-12-14 14:41PHP教程網 PHP教程

Session保存到數據庫的php類,需要的朋友可以參考下。

代碼如下:


<?php 
class SessionToDB 

private $_path = null; 
private $_name = null; 
private $_pdo = null; 
private $_ip = null; 
private $_maxLifeTime = 0; 

public function __construct(PDO $pdo) 

session_set_save_handler( 
array(&$this, 'open'), 
array(&$this, 'close'), 
array(&$this, 'read'), 
array(&$this, 'write'), 
array(&$this, 'destroy'), 
array(&$this, 'gc') 
); 

$this->_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(); 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 九九热在线视频观看这里只有精品 | 四虎免费影院4hu永久免费 | 午夜视频一区二区三区 | 性夜a爽黄爽 | 欧美一级免费看 | 美女扒开粉嫩尿口漫画 | 无人在线视频高清免费观看动漫 | 国自产在线精品免费 | 四虎成人免费大片在线 | 免费网站看v片在线香蕉 | 性xxxx直播放免费 | 亚洲小视频网站 | 91美女在线视频 | 国产91精品露脸国语对白 | 双性总裁(h) | 久久久精品成人免费看 | 亚洲老头老太hd | 福利片免费一区二区三区 | 久久精品国产免费播高清无卡 | 动漫美女强行被吸乳做羞羞事 | 欧美日韩专区国产精品 | 欧美不卡一区二区三区免 | 日韩丝袜在线观看 | 午夜熟女插插XX免费视频 | 爱色v | 亚洲国产美女精品久久 | 操儿媳小说 | 成人性用品 | 国产精品一区三区 | 99ri精品 | 牛牛色婷婷在线视频播放 | 国产精品在线 | 亚洲国产在线综合018 | 久久久精品免费免费直播 | 亚洲黄网站wwwwww | 天堂a免费视频在线观看 | 波多野结衣家庭教师 | 97在线资源站 | 久久亚洲精品AV成人无码 | 成人动漫在线免费看 | 日本视频在线观看 |