먼저 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', //必须设置成这样,如果不加前缀就找不到数据表,这个需要注意 ); ?>
으로 설정됩니다. 데이터베이스 설정은 .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('session_name','session_value')
을 호출하면 시스템이 자동으로 위에서 생성한 데이터베이스에 이 세션을 저장합니다. .
관련 기사 추천: 2020년 가장 완벽한 js 면접 질문 모음(최신)