麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PHP > 正文

php實現將Session寫入數據庫

2024-05-04 23:38:04
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php實現將Session寫入數據庫的相關資料,需要的朋友可以參考下

使用session_set_save_handler()函數,將Session的內容寫入數據庫

 

 
  1. <?php 
  2. /* 
  3. *@author Fahy 
  4. *數據庫為mysql, 
  5. *數據庫名為session,表名為session, 
  6. *表中字段包括PHPSESSID,update_time,client_ip,data 
  7. */ 
  8. class Session{ 
  9. private static $handler = null
  10. private static $ip = null
  11. private static $lifetime = null
  12. private static $time = null
  13.  
  14. //配置靜態變量 
  15. private static function init($handler){ 
  16. self::$handler = $handler; //獲取數據庫資源 
  17. self::$ip = !empty($_SERVER["REMOTE_ADDR"])? $_SERVER["REMOTE_ADDR"]:'unkonw'//獲取客戶端ip 
  18. self::$lifetime = ini_get('session.gc_maxlifetime'); //獲取session生命周期 
  19. self::$time = time(); //獲取當前時間 
  20. //調用session_set_save_handler()函數并開啟session 
  21. static function start($pdo){ 
  22. self::init($pdo); 
  23. session_set_save_handler( 
  24. array(__CLASS__,'open'), 
  25. array(__CLASS__,'close'), 
  26. array(__CLASS__,'read'), 
  27. array(__CLASS__,'write'), 
  28. array(__CLASS__,'destroy'), 
  29. array(__CLASS__,'gc'
  30. ); 
  31. session_start(); 
  32.  
  33. public static function open($path,$name){ 
  34. return true
  35. public static function close(){ 
  36. return true
  37.  
  38. //查詢數據庫中的數據 
  39. public static function read($PHPSESSID){ 
  40. $sql = "select PHPSESSID,update_time,client_ip,data from session where PHPSESSID=?"
  41. $stmt = self::$handler->prepare($sql); 
  42. $stmt->execute(array($PHPSESSID)); 
  43. if(!$result = $stmt->fetch(PDO::FETCH_ASSOC)){ 
  44. return ''
  45. if(self::$ip == $result['client_ip']){ 
  46. self::destroy($PHPSESSID); 
  47. return ''
  48. if(($result['update_time']+self::$lifetime)<self::$time){ 
  49. self::destroy($PHPSESSID); 
  50. return ''
  51. return $result['data']; 
  52. /* 
  53. *首先查詢該session是否存在數據,如果存在,則更新數據,如果不存在,則插入數據 
  54. */ 
  55. //將session寫入數據庫中,$data傳入session中的keys和values數組 
  56. public static function write($PHPSESSID,$data){ 
  57. $sql = "select PHPSESSID,update_time,client_ip,data from session where PHPSESSID=?"
  58. $stmt = self::$handler->prepare($sql); 
  59. $stmt->execute(array($PHPSESSID)); 
  60.  
  61. if($result=$stmt->fetch(PDO::FETCH_ASSOC)){  
  62. if($result['data'] != $data || self::$time > ($result['update_time']+30)){ 
  63. $sql = "update session set update_time=?,data=? where PHPSESSID = ?"
  64. $stmt = self::$handler->prepare($sql); 
  65. $stmt->execute(array($self::$time,$data,$PHPSESSID)); 
  66. }else
  67. if(!empty($data)){ 
  68. try
  69. $sql = "insert into session(PHPSESSID,update_time,client_ip,data) values(?,?,?,?)"
  70. }catch(PDOException $e){ 
  71. echo $e->getMessage(); 
  72. $sth = self::$handler->prepare($sql); 
  73. $sth->execute(array($PHPSESSID,self::$time,self::$ip,$data)); 
  74. return true
  75.  
  76. public static function destroy($PHPSESSID){ 
  77. $sql = "delete from session where PHPSESSID = ?"
  78. $stmt = self::$handler->prepare($sql); 
  79. $stmt->execute(array($PHPSESSID)); 
  80. return true
  81. public static function gc($lifetime){ 
  82. $sql = "delete from session where update_time<?"
  83. $stmt = self::$handler->prepare($sql); 
  84. $stmt->execute(array(self::$time-$lifetime)); 
  85. return true
  86. //使用PDO連接數據庫 
  87. try
  88. $pdo = new PDO("mysql:host=localhost;dbname=session","root","hwj193"); 
  89. }catch(PDOException $e){ 
  90. echo $e->getMessage(); 
  91. //傳遞數據庫資源 
  92. Session::start($pdo); 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91九色精品 | 国av在线| 精品成人久久久 | 久久久久.com | 欧美成人高清在线 | 欧美成人一级片 | 国产成人免费精品 | 91精品国产91热久久久做人人 | 曰韩精品 | 午色影院| 91久久国产综合久久91精品网站 | 亚洲黑人在线观看 | 亚洲第一综合色 | 国产精品久久999 | av在线免费观看中文字幕 | 免费网站看v片在线a | 欧美一区2区三区4区公司二百 | 亚洲精品久久久久久下一站 | 国产69精品久久99不卡免费版 | 亚洲精品tv久久久久久久久久 | 国产羞羞视频在线观看免费应用 | 亚洲极色 | 中文字幕综合在线观看 | 精品一区二区三区免费看 | 国产精品成人亚洲一区二区 | 久久久久久久久国产 | 91在线播放国产 | 亚洲第一页在线观看 | 韩国十九禁高潮床戏在线观看 | 国产69久久久| 久久久久久久免费视频 | 亚洲午夜免费电影 | 国产午夜精品一区二区三区不卡 | 国产精品自拍片 | 欧美成人午夜 | 国产精品国产三级国产在线观看 | 欧美国产第一页 | 国产精品欧美日韩一区二区 | 精品久久久久久久久久久aⅴ | 欧美三级一级 | 久久国产夫妻视频 |