原文:http://www.cnblogs.com/mrcoke/ 这个人的博客上转的。
这个博客也好: 学算法和数据结构!!http://blog.csdn.net/21aspnet/article/category/286009
------------------------------
PHP session自定义处理,将session保存到数据库中!!!
session.gc_probability = 1 //默认是1 ,越大越好 session.gc_divisor = 100 //默认是100,越小越好 // 默认是一百次请求调用一次gc 。session.gc_probability相当于分子,session.gc_divisor相当于分母。如果想每次都调用gc 两个改成一样就可以了 session.gc_maxlifetime = 30 // session生存时间 <?php function session_open($session_path, $session_name) { mysql_connect('localhost', 'root', 'root'); mysql_select_db('demo'); mysql_query("SET NAMES utf8"); } function session_close() { return TRUE; } function session_read($SID) { $query = "SELECT value FROM session where SID= '$SID' AND expiration >".time(); $result = mysql_query($query); if(mysql_num_rows($result)) { $row = mysql_fetch_assoc($result); $value = $row['value']; return $value; }else { return FALSE; } } function session_write($SID, $value) { $lifetime = get_cfg_var("session.gc_maxlifetime"); $expiration = time() + $lifetime; $query = "INSERT INTO session VALUES('$SID', '$expiration', '$value')"; $result = mysql_query($query); if (!$result) { $query = "UPDATE session SET expiration = '$expiration', value = '$value' WHERE SID = '$SID' AND expiration >".time(); $result = mysql_query($query); } } function sessionDestroy($SID) { $query = "DELETE FROM session WHERE SID = '$SID'"; $result = mysql_query($query); } function session_gc() { $query = "DELETE FROM session WHERE expiration <".time(); $result = mysql_query($query); echo mysql_affected_rows(); } session_set_save_handler("session_open", "session_close", "session_read", "session_write", "sessionDestroy", "session_gc"); session_start(); ?>