国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

SESSION存放在數據庫用法實例

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

這篇文章主要介紹了SESSION存放在數據庫用法,自定義了一個簡單的針對數據操作的session類并給出了使用該類存儲到數據庫的相關技巧,需要的朋友可以參考下

本文實例講述了SESSION存放在數據庫用法。分享給大家供大家參考。具體如下:

 

 
  1. <?php 
  2. /* 
  3. CREATE TABLE `ws_sessions` ( 
  4. `session_id` varchar(255) binary NOT NULL default '', 
  5. `session_expires` int(10) unsigned NOT NULL default '0', 
  6. `session_data` text, 
  7. PRIMARY KEY (`session_id`) 
  8. ) TYPE=InnoDB; 
  9. */ 
  10. class session { 
  11. // session-lifetime 
  12. var $lifeTime
  13. // mysql-handle 
  14. var $dbHandle
  15. function open($savePath$sessName) { 
  16. // get session-lifetime 
  17. $this->lifeTime = get_cfg_var("session.gc_maxlifetime"); 
  18. // open database-connection 
  19. $dbHandle = @mysql_connect("localhost","root",""); 
  20. $dbSel = @mysql_select_db("test",$dbHandle); 
  21. // return success 
  22. if(!$dbHandle || !$dbSel
  23. return false; 
  24. $this->dbHandle = $dbHandle
  25. return true; 
  26. function close() { 
  27. $this->gc(ini_get('session.gc_maxlifetime')); 
  28. // close database-connection 
  29. return @mysql_close($this->dbHandle); 
  30. function read($sessID) { 
  31. // fetch session-data 
  32. $res = mysql_query("SELECT session_data AS d FROM ws_sessions 
  33. WHERE session_id = '$sessID' 
  34. AND session_expires > ".time(),$this->dbHandle); 
  35. // return data or an empty string at failure 
  36. if($row = mysql_fetch_assoc($res)) 
  37. return $row['d']; 
  38. return ""
  39. function write($sessID,$sessData) { 
  40. // new session-expire-time 
  41. $newExp = time() + $this->lifeTime; 
  42. // is a session with this id in the database? 
  43. $res = mysql_query("SELECT * FROM ws_sessions 
  44. WHERE session_id = '$sessID'",$this->dbHandle); 
  45. // if yes, 
  46. if(mysql_num_rows($res)) { 
  47. // ...update session-data 
  48. mysql_query("UPDATE ws_sessions 
  49. SET session_expires = '$newExp'
  50. session_data = '$sessData' 
  51. WHERE session_id = '$sessID'",$this->dbHandle); 
  52. // if something happened, return true 
  53. if(mysql_affected_rows($this->dbHandle)) 
  54. return true; 
  55. // if no session-data was found, 
  56. else { 
  57. // create a new row 
  58. mysql_query("INSERT INTO ws_sessions ( 
  59. session_id, 
  60. session_expires, 
  61. session_data) 
  62. VALUES( 
  63. '$sessID'
  64. '$newExp'
  65. '$sessData')",$this->dbHandle); 
  66. // if row was created, return true 
  67. if(mysql_affected_rows($this->dbHandle)) 
  68. return true; 
  69. // an unknown error occured 
  70. return false; 
  71. function destroy($sessID) { 
  72. // delete session-data 
  73. mysql_query("DELETE FROM ws_sessions WHERE session_id = '$sessID'",$this->dbHandle); 
  74. // if session was deleted, return true, 
  75. if(mysql_affected_rows($this->dbHandle)) 
  76. return true; 
  77. // ...else return false 
  78. return false; 
  79. function gc($sessMaxLifeTime) { 
  80. // delete old sessions 
  81. mysql_query("DELETE FROM ws_sessions WHERE session_expires < ".time(),$this->dbHandle); 
  82. // return affected rows 
  83. return mysql_affected_rows($this->dbHandle); 
  84. $session = new session(); 
  85. session_set_save_handler(array(&$session,"open"), 
  86. array(&$session,"close"), 
  87. array(&$session,"read"), 
  88. array(&$session,"write"), 
  89. array(&$session,"destroy"), 
  90. array(&$session,"gc")); 
  91. session_start(); 
  92. // etc... 
  93. ?> 

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金坛市| 天祝| 邢台市| 来安县| 广东省| 台东市| 昭通市| 平阳县| 岢岚县| 张家界市| 潞城市| 神农架林区| 湟源县| 榆林市| 囊谦县| 北海市| 柳州市| 贺州市| 开原市| 南京市| 怀安县| 许昌市| 三明市| 刚察县| 呼伦贝尔市| 甘南县| 博湖县| 望江县| 板桥市| 信丰县| 江川县| 嵩明县| 金昌市| 余庆县| 皮山县| 广丰县| 横山县| 石家庄市| 湘乡市| 荔浦县| SHOW|