首頁 >php框架 >ThinkPHP >ThinkPHP實作將SESSION存入MYSQL的方法

ThinkPHP實作將SESSION存入MYSQL的方法

高洛峰
高洛峰原創
2016-12-22 10:36:412702瀏覽

ThinkPHP實作將SESSION存入MYSQL的方法

首先index.php設定為:

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

在config.php中設定為:

<?php
return array(//&#39;配置项&#39;=>&#39;配置值&#39;
      // 添加数据库配置信
  &#39;SHOW_PAGE_TRACE&#39; =>true,
  &#39;DB_TYPE&#39;  => &#39;mysql&#39;, // 数据库类型
  &#39;DB_HOST&#39;  => &#39;localhost&#39;, // 服务器地址
  &#39;DB_NAME&#39;  => &#39;thinkphp&#39;, // 数据库名
  &#39;DB_USER&#39;  => &#39;你的用户名&#39;, // 用户名
  &#39;DB_PWD&#39;  => &#39;你的密码&#39;, // 密码
  &#39;DB_PORT&#39;  => 3306, // 端口
  &#39;DB_PREFIX&#39; => &#39;think_&#39;, // 数据库表前缀缀
&#39;SESSION_OPTIONS&#39;=>array(
    &#39;type&#39;=> &#39;db&#39;,//session采用数据库保存
    &#39;expire&#39;=>1440,//session过期时间,如果不设就是php.ini中设置的默认值
  ),
&#39;SESSION_TABLE&#39;=>&#39;think_session&#39;, //必须设置成这样,如果不加前缀就找不到数据表,这个需要注意
);
?>

資料庫設定採用SessionDb.class.php中的DDL,但後面加了ENGINE=MyISAM DEFAULT CHARM DEFAUL

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(&#39;session_name&#39;,&#39;session_value&#39;)

系統就會自動把這個session儲存上面建立的資料庫中。

推薦相關文章2020年最全js面試題整理(最新)

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:暫無下一篇:thinkphp是什么