THINKPHP 中将 SESSION 存入 MYSQL 方法

试了很多次,也在网上看了很多,也在THINKPHP手册中找了很多。都没有正正解决,测试了很长时间终于基本搞定。
不知道还有什么隐患或者不合理的地方,写出来希望大家指教和给我建议。
我用的是 THINKPHP 3.1.2版
index.php 中 设置为

1 <?php
2 define('APP_DEBUG', true);//设置为调试模式
3 require '../ThinkPHP/ThinkPHP.php';//设置入口文件
4 ini_set("session.save_handler", "user");//设置PHP的SESSION由用户定义

config.php设置为

01 <?php
02 return array(//'配置项'=>'配置值'
03             // 添加数据库配置信
04     'SHOW_PAGE_TRACE' =>true,
05     'DB_TYPE'   => 'mysql'// 数据库类型
06     'DB_HOST'   => 'localhost'// 服务器地址
07     'DB_NAME'   => 'thinkphp'// 数据库名
08     'DB_USER'   => '你的用户名'// 用户名
09     'DB_PWD'    => '你的密码'// 密码
10     'DB_PORT'   => 3306, // 端口
11     'DB_PREFIX' => 'think_'// 数据库表前缀缀
12 'SESSION_OPTIONS'=>array(
13         'type'=> 'db',//session采用数据库保存
14         'expire'=>1440,//session过期时间,我也不知道是秒还是毫秒,请知道的人告诉我,如果不设就是php.ini中设置的默认值
15    ),
16 'SESSION_TABLE'=>'think_session'//必须设置成这样,如果不加前缀就找不到数据表,这个我试过多次
17 );
18 ?>
19  
20 1
21  
22 数据库设置采用SessionDb.class.php中的DDL,不过后面加了ENGINE=MyISAM DEFAULT CHARSET=utf8
23  
24 1
25  
26 CREATE TABLE think_session (
27        session_id varchar(255) NOT NULL,
28        session_expire int(11) NOT NULL,
29        session_data blob,
30        UNIQUE KEY `session_id` (`session_id`)
31    )ENGINE=MyISAM DEFAULT CHARSET=utf8;

现在访问你的 index.php 后再在 phpmyadmin 中找到 think_session 表,我惊喜的发现多了条数据。
搞定。其他不要设置了,SessionDb.class.php会自动加载.

这样ThinkPhp的调用session(‘session_name’,'session_value’), 系统就会自动把这个session存储上面创建的数据库中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值