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

データベース設定は 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(&#39;session_name&#39;,&#39;session_value&#39;)

システムは、このセッションを上で作成したデータベースに自動的に保存します。

おすすめ関連記事: 2020年JS面接質問集(最新)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:なし次の記事:thinkphp是什么