ThinkPHP实现将SESSION存入MYSQL的方法

前端技术 2023/09/08 PHP

本文以实例讲解了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
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\',//session采用数据库保存
    \'expire\'=>1440,//session过期时间,如果不设就是php.ini中设置的默认值
  ),
\'SESSION_TABLE\'=>\'think_session\', //必须设置成这样,如果不加前缀就找不到数据表,这个需要注意
);
?>

数据库设置采用SessionDb.class.php中的DDL,不过后面加了ENGINE=MyISAM DEFAULT CHARSET=utf8

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的调用

session(\'session_name\',\'session_value\')

系统就会自动把这个session存储上面创建的数据库中。

本文地址:https://www.stayed.cn/item/22079

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。