ThinkPHP实现将SESSION存入MYSQL的方法
本文以实例讲解了ThinkPHP实现将SESSION存入MYSQL的方法,所采用的运行环境是ThinkPHP3.1.2版
首先index.php中设置为:
<?php define('APP_DEBUG',true);//设置为调试模式 require'../ThinkPHP/ThinkPHP.php';//设置入口文件 ini_set("session.save_handler","user");//设置PHP的SESSION由用户定义
在config.php中设置为:
<?php returnarray(//'配置项'=>'配置值' //添加数据库配置信 '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',//session采用数据库保存 'expire'=>1440,//session过期时间,如果不设就是php.ini中设置的默认值 ), 'SESSION_TABLE'=>'think_session',//必须设置成这样,如果不加前缀就找不到数据表,这个需要注意 ); ?>
数据库设置采用SessionDb.class.php中的DDL,不过后面加了ENGINE=MyISAMDEFAULTCHARSET=utf8
CREATETABLEthink_session( session_idvarchar(255)NOTNULL, session_expireint(11)NOTNULL, session_datablob, UNIQUEKEY`session_id`(`session_id`) )ENGINE=MyISAMDEFAULTCHARSET=utf8;
现在访问你的index.php后再在phpmyadmin中找到think_session表,我们会惊喜的发现多了条数据。
至此问题搞定。其他不要设置了,SessionDb.class.php会自动加载.
这样ThinkPHP的调用
session('session_name','session_value')
系统就会自动把这个session存储上面创建的数据库中。