>  기사  >  PHP 프레임워크  >  ThinkPHP는 MYSQL에 SESSION을 저장하는 방법을 구현합니다.

ThinkPHP는 MYSQL에 SESSION을 저장하는 방법을 구현합니다.

高洛峰
高洛峰원래의
2016-12-22 10:36:412669검색

ThinkPHP는 MYSQL에 SESSION을 저장하는 방법을 구현합니다.

먼저 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;, //必须设置成这样,如果不加前缀就找不到数据表,这个需要注意
);
?>

으로 설정됩니다. 데이터베이스 설정은 .class.php에서 SessionDb 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(&#39;session_name&#39;,&#39;session_value&#39;)

을 호출하면 시스템이 자동으로 위에서 생성한 데이터베이스에 이 세션을 저장합니다. .

관련 기사 추천: 2020년 가장 완벽한 js 면접 질문 모음(최신)

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:없음다음 기사:thinkphp是什么