轻松实现会话的mysql处理(转)

  轻松实现会话的mysql处理(转)[@more@]

,通常、会话都是保存在临时文件里的,但是,要是把它保存在数据库里,就会给我们带来很多好处,比如统计在线人数之类的。废话不说了,看程序:

  

<? PHP包括(“db_mysql.inc”);

  

函数打开(save_path, session_name美元){
,全球美元db, REMOTE_ADDR美元;
,$ db ->查询(“删除从会话SessionLast 1小时)”);
,如果($ db ->查询(“select *从会话SessionID=薄?session_id ()。”””)
& &=$ db ->访问fetch_array美元进行())
,$ db ->查询(“更新会话设置SessionLast=现在()
SessionID=薄?session_id()。“的”);
,其他$ db ->查询(“插入会话设置
SessionID=薄?session_id ()。“”, SessionName=REMOTE_ADDR美元,SessionLast=现在()”
);
,返回(真正);
}

  

函数close ()

  

,返回true;
}

  

函数读取($ id) {
,全球美元db;
,如果(!$ db ->查询(“从会话选择SessionID SessionID=$ id”)
| | $ db -> num_rows() <=0)返回false;
,$ SQL=按踊峄把≡馭essionData SessionID=$ id”;
,$ db ->查询(SQL)美元;
,列表(sess_data美元)=$ db -> fetch_row ();
,返回(sess_data美元);
}

  

函数编写(id、sess_data美元){
,全球美元db;
,如果(!$ db ->查询(“从会话选择SessionID SessionID=$ id”) | |
$ db -> num_rows() <=0)返回false;
,如果($ db ->查询(“更新会话设置
SessionData=https://www.yisu.com/zixun/sess_data美元,SessionLast=现在()SessionID=$ id”))
,返回true;
,否则返回false;
}

  

功能破坏($ id) {
,全球美元db;
,$ db ->查询(“删除从会话SessionID=$ id”);
}

  

函数gc (maxlifetime美元){
,返回true;
}

  

session_set_save_handler(“开放”、“关闭”、“读”、“写”、“破坏”,gc);

  

session_start ();

  

?

注:数据表:会话
CREATE TABLE会话(
,SessionID varchar (50) NOT NULL,
,SessionName varchar (50) NOT NULL,
,SessionData blob,
,SessionLast datetime默认的0000-00-00就是NOT NULL,
,主键(SessionID)
);


轻松实现会话的mysql处理(转)