輕松實現session的mysql處理 (轉)[@more@] 通常,session都是保存在臨時文件里的,但是,要是把它保存在數據庫里,就會給我們帶來很多好處,比如統計在線人數之類的。廢話不說了,看程序:
include("db_mysql.inc");
function open ($save_path, $session_name) { global $db,$REMOTE_ADDR; $db->query("delete from Sessions where SessionLast1 hour)"); if($db->query("select * from Sessions where SessionID='".session_id()."'") && $arry=$db->fetch_array()) $db->query("update Sessions set SessionLast=NOW() where SessionID='".session_id()."'"); else $db->query("insert into Sessions set SessionID='".session_id()."',SessionName='$REMOTE_ADDR',SessionLast='NOW()'" ); return(true); }
function close()
return true; }
function read ($id) { global $db; if(!$db->query("select SessionID from Sessions where SessionID='$id'") || $db->num_rows()<=0)return false; $SQL="select SessionData from Sessions where SessionID='$id'"; $db->query($SQL); list($sess_data)=$db->fetch_row(); return($sess_data); }
function write ($id, $sess_data) { global $db; if(!$db->query("select SessionID from Sessions where SessionID='$id'") || $db->num_rows()<=0)return false; if($db->query("update Sessions set SessionData='$sess_data',SessionLast=NOW() where SessionID='$id'")) return true; else return false; }
function destroy ($id) { global $db; $db->query("delete from Sessions where SessionID='$id'"); }
function gc ($maxlifetime) { return true; }
session_set_save_handler ("open", "close", "read", "write", "destroy","gc");
session_start();
?> 注: 數據表:Sessions CREATE TABLE Sessions ( SessionID varchar(50) NOT NULL, SessionName varchar(50) NOT NULL, SessionData blob, SessionLast datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, PRIMARY KEY (SessionID) ); |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信