本文以实例讲解了ThinkPHP实现将SESSION存入MYSQL的方法,所采用的运行环境是ThinkPHP3.1.2版
首先index.php中设置为:
?
1
2
3
4
|
define( ‘APP_DEBUG‘ , true);
require ‘../ThinkPHP/ThinkPHP.php‘ ;
ini_set ( "session.save_handler" , "user" );
|
在config.php中设置为:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
return array (
‘SHOW_PAGE_TRACE‘ =>true,
‘DB_TYPE‘ => ‘mysql‘ ,
‘DB_HOST‘ => ‘localhost‘ ,
‘DB_NAME‘ => ‘thinkphp‘ ,
‘DB_USER‘ => ‘你的用户名‘ ,
‘DB_PWD‘ => ‘你的密码‘ ,
‘DB_PORT‘ => 3306,
‘DB_PREFIX‘ => ‘think_‘ ,
‘SESSION_OPTIONS‘ => array (
‘type‘ => ‘db‘ ,
‘expire‘ =>1440,
),
‘SESSION_TABLE‘ => ‘think_session‘ ,
);
?>
|
数据库设置采用SessionDb.class.php中的DDL,不过后面加了ENGINE=MyISAM DEFAULT CHARSET=utf8
?
1
2
3
4
5
6
|
CREATE TABLE think_session (
session_id varchar (255) NOT NULL ,
session_expire int (11) NOT NULL ,
session_data blob,
UNIQUE KEY `session_id` (`session_id`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
现在访问你的 index.php 后再在 phpmyadmin 中找到 think_session 表,我们会惊喜的发现多了条数据。
至此问题搞定。其他不要设置了,SessionDb.class.php会自动加载.
这样ThinkPHP的调用
?
1
|
session( ‘session_name‘ , ‘session_value‘ )
|
系统就会自动把这个session存储上面创建的数据库中。