抛砖引玉系列 -- 使用ADODB实现session共享
时间:2006-05-15
来源:互联网
如果您的应用系统为了应对大量并发访问而采用多台web前端来分担负载。这时如何在多台web服务器上共享session就是一个很重要的问题。
php为我们提供了session_module_name和session_set_save_handler函数来自定义session信息的存储、访问、回收等函数。
ADODB是使用广泛的数据抽象层之一,他在提供统一数据访问格式的基础上利用session_set_save_handler实现了将session信息数据存入数据库。
下面我们就介绍一下如何使用ADODB的这个功能
1、首先我们下载最新版本的ADODB。下载地址:http://adodb.sourceforge.net/#download
解压缩后将ADODB文件加方在你的应用程序根目录下。打开adodb/session目录你会看到有几个扩展名为.sql的文件。这就是存放session数据的数据表。
选择与你使用的数据库类型相同的一个sql文件。建立session数据表。
2、我们将所有配置信息放在配置文件中,在其他项目文件中包含即可。
config.php:
<?php
GLOBAL
$ADODB_SESSION_DRIVER, // SESSION服务器的数据库类型
$ADODB_SESSION_CONNECT, // SESSION服务器IP地址
$ADODB_SESSION_USER, // SESSION服务器的用户名
$ADODB_SESSION_PWD, // SESSION服务器的密码
$ADODB_SESSION_DB, // SESSION服务器的数据库名
$ADODB_SESSION_TBL; // SESSION数据表名
$ADODB_SESSION_DRIVER = "mysql";
$ADODB_SESSION_CONNECT = "localhost";
$ADODB_SESSION_USER = "root";
$ADODB_SESSION_PWD = "123456";
$ADODB_SESSION_DB = "sessiondb";
$ADODB_SESSION_TBL = "sessions";
// 包含相关的文件
include_once('adodb/adodb.inc.php');
include_once('adodb/session/adodb-session.php');
session_start();
?>
3、在项目文件中包含以上配置即可。
index.php:
<?php
include_once 'config.php';
// 使用session跟以前一模一样,呵呵。
$_SESSION['TEST'] = 'ADODB SESSION';
do other stuff......
?>
文件执行完毕后会自动调用close方法关闭连接。
session信息被回收的时间由php.ini的配置决定。
以上是最基本的默认使用方法。默认打开一个持久性的连接,如果想每次请求数据库打开一个非持久性连接需要在
session_start()函数前显式调用adodb_sess_open(false,false,false);这个函数的原形为adodb_sess_open($path, $sessname, $connectMode)
其中第三个参数就是定义数据库的连接方式。(关于连接方式请查阅adodb相关手册)
$connectMode | Connection Method
true | PConnect( )
false | Connect( )
'N' | NConnect( )
'P' | PConnect( )
'C' | Connect( )
如果你需要将数据库中的session信息加密。就将include_once('adodb/session/adodb-session.php');改为include('adodb/session/adodb-cryptsession.php');
php为我们提供了session_module_name和session_set_save_handler函数来自定义session信息的存储、访问、回收等函数。
ADODB是使用广泛的数据抽象层之一,他在提供统一数据访问格式的基础上利用session_set_save_handler实现了将session信息数据存入数据库。
下面我们就介绍一下如何使用ADODB的这个功能
1、首先我们下载最新版本的ADODB。下载地址:http://adodb.sourceforge.net/#download
解压缩后将ADODB文件加方在你的应用程序根目录下。打开adodb/session目录你会看到有几个扩展名为.sql的文件。这就是存放session数据的数据表。
选择与你使用的数据库类型相同的一个sql文件。建立session数据表。
2、我们将所有配置信息放在配置文件中,在其他项目文件中包含即可。
config.php:
<?php
GLOBAL
$ADODB_SESSION_DRIVER, // SESSION服务器的数据库类型
$ADODB_SESSION_CONNECT, // SESSION服务器IP地址
$ADODB_SESSION_USER, // SESSION服务器的用户名
$ADODB_SESSION_PWD, // SESSION服务器的密码
$ADODB_SESSION_DB, // SESSION服务器的数据库名
$ADODB_SESSION_TBL; // SESSION数据表名
$ADODB_SESSION_DRIVER = "mysql";
$ADODB_SESSION_CONNECT = "localhost";
$ADODB_SESSION_USER = "root";
$ADODB_SESSION_PWD = "123456";
$ADODB_SESSION_DB = "sessiondb";
$ADODB_SESSION_TBL = "sessions";
// 包含相关的文件
include_once('adodb/adodb.inc.php');
include_once('adodb/session/adodb-session.php');
session_start();
?>
3、在项目文件中包含以上配置即可。
index.php:
<?php
include_once 'config.php';
// 使用session跟以前一模一样,呵呵。
$_SESSION['TEST'] = 'ADODB SESSION';
do other stuff......
?>
文件执行完毕后会自动调用close方法关闭连接。
session信息被回收的时间由php.ini的配置决定。
以上是最基本的默认使用方法。默认打开一个持久性的连接,如果想每次请求数据库打开一个非持久性连接需要在
session_start()函数前显式调用adodb_sess_open(false,false,false);这个函数的原形为adodb_sess_open($path, $sessname, $connectMode)
其中第三个参数就是定义数据库的连接方式。(关于连接方式请查阅adodb相关手册)
$connectMode | Connection Method
true | PConnect( )
false | Connect( )
'N' | NConnect( )
'P' | PConnect( )
'C' | Connect( )
如果你需要将数据库中的session信息加密。就将include_once('adodb/session/adodb-session.php');改为include('adodb/session/adodb-cryptsession.php');
作者: dreamriver 发布时间: 2006-05-15
这么好的帖子,没人顶太可惜了.
作者: kupe 发布时间: 2007-11-30

作者: luzhou 发布时间: 2007-11-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28