Home  >  Article  >  php教程  >  php基于session实现数据库交互的类实例

php基于session实现数据库交互的类实例

WBOY
WBOYOriginal
2016-06-06 19:48:511147browse

这篇文章主要介绍了php基于session实现数据库交互的类,实例分析了php结合session操作数据库的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了php基于session实现数据库交互的类。分享给大家供大家参考。具体如下:

query("update ".self::$table." set value='$session_data', expiry='$session_expire' where session_id='$session_id'"); self::close(); } self::$is_del = TRUE; } /** * 销毁 * * */ public static function destroy() { $session_id = self::get_session_id(); $_COOKIE['WBSID'] = ''; self::open(); self::$dbo->query("delete from ".self::$table." where session_id='$session_id'"); self::close(); } /** * 读取 私有 * */ private static function read() { $session_id = self::$session_id; if (!$session_id) { $session_id = self::get_session_id(); } if (!$session_id) return array(); $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? md5($_SERVER['HTTP_USER_AGENT']) : ''; $client_ip = Fun::getIp(); $session_expire = TIME - self::get_gc_maxtime(); $rs = self::$dbo->fetchRow("select session_id, value, agent, ip from ".self::$table." where session_id='$session_id' and expiry>'$session_expire'"); if (!$rs || $rs['agent'] != $user_agent || $rs['ip'] != $client_ip) { return FALSE; } self::$session_id = $rs['session_id']; return unserialize($rs['value']); } /** * session 写入 私有 * */ private static function write(array $session_data) { $session_id = self::$session_id; if (!$session_id) { $session_id = self::get_session_id(); } $session_expire = TIME + self::get_gc_maxtime(); $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? md5($_SERVER['HTTP_USER_AGENT']) : ''; $client_ip = Fun::getIp(); $session_data = serialize($session_data); if (self::$session_id && self::$session_id === $session_id) { self::$dbo->query("update ".self::$table." set value='$session_data', expiry='$session_expire', agent='$user_agent', ip='$client_ip' where session_id='$session_id'"); } else { self::$session_id = $session_id = self::create_session_id(); self::$dbo->query("insert into ".self::$table."(session_id, value, expiry, agent, ip) values('$session_id', '$session_data', '$session_expire', '$user_agent', '$client_ip')"); } return true; } /** * session 更新 私有 * */ private static function update() { if (!self::$is_update) { $session_id = self::$session_id; $session_expire = TIME + self::get_gc_maxtime(); self::$dbo->query("update ".self::$table." set expiry='$session_expire' where session_id='$session_id'"); } self::$is_update = TRUE; } private static function close() { if (!self::$is_gc && mt_rand(1, self::$gc_rate_de)%self::$gc_rate_co == 0) { self::gc(); } self::$is_gc = TRUE; } /** * 过期session 清除 随机触发 * */ private static function gc() { $session_expire = TIME - self::get_gc_maxtime(); self::$dbo->query("delete from ".self::$table." where expiry

希望本文所述对大家的php程序设计有所帮助。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn