php使用MySQL保存session会话的方法
本文实例讲述了php使用MySQL保存session会话的方法。分享给大家供大家参考。具体分析如下:
在很多大的系统中一般都有这个功能,但是要分离出来分析,网上的资料也不太多 这里我整理了一篇发出来与大家分享
使用MySQL保存session会话较files有很多优点:
1) 有利于分布式系统,files只能保存在一台机器上
2) 有利于大访问量的系统,使用files时每个session保存在一个文件中,目录会超级大,查找session文件会比较困难。
使用MySQL保存会话首先要创建session表
<?php
$hostname_login = "localhost"; // Server address
$username_login = "root"; // User name
$password_login = ""; // Password
//
$data_name = "session"; // Database name
$login = mysql_pconnect($hostname_login, $username_login, $password_login) or trigger_error(mysql_error(),E_USER_ERROR);
$sql="SHOW DATABASES LIKE '".$data_name."'"; // If it is exist
if($rs_table=mysql_query($sql,$login)) {
if($rs_value=mysql_fetch_array($rs_table)) {
echo "数据库已经存在!\n!";
exit();
}
}
$sql="CREATE DATABASE $data_name";
mysql_query($sql); // Crate database
echo "数据库创建成功!\n";
mysql_select_db($data_name, $login);
$sql="CREATE TABLE `sessions` (
`SessionKey` varchar(32) NOT NULL default '',
`SessionArray` blob NOT NULL,
`SessionExpTime` int(20) unsigned NOT NULL default '0',
PRIMARY KEY (`SessionKey`),
KEY `SessionKey` (`SessionKey`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8"; //新建数据库 sql语句
mysql_query($sql);
echo "成功新建数据库表!";
?>
<?php
$hostname_login = "localhost"; // Server address
$username_login = "root"; // User name
$password_login = ""; // Password
//
$data_name = "session"; // Database name
$login = mysql_pconnect($hostname_login, $username_login, $password_login) or trigger_error(mysql_error(),E_USER_ERROR);
$sql="SHOW DATABASES LIKE '".$data_name."'"; // If it is exist
if($rs_table=mysql_query($sql,$login)) {
if($rs_value=mysql_fetch_array($rs_table)) {
echo "数据库已经存在!\n!";
exit();
}
}
$sql="CREATE DATABASE $data_name";
mysql_query($sql); // Crate database
echo "数据库创建成功!\n";
mysql_select_db($data_name, $login);
$sql="CREATE TABLE `sessions` (
`SessionKey` varchar(32) NOT NULL default '',
`SessionArray` blob NOT NULL,
`SessionExpTime` int(20) unsigned NOT NULL default '0',
PRIMARY KEY (`SessionKey`),
KEY `SessionKey` (`SessionKey`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8"; //新建数据库 sql语句
mysql_query($sql);
echo "成功新建数据库表!";
?>
session_module_name
(PHP 4, PHP 5)
session_module_name — 获取/设置会话模块名称
说明 ¶
string session_module_name ([ string $module
] )
session_module_name() 获取或设置会话模块名称。
参数 ¶
module
如果指定
module
参数,则使用 指定值作为会话模块。
返回值 ¶
返回当前所用的会话模块名称。
User Contributed Notes 3 notes
0
2 months ago
was looking for a rather comprehensive list of modules, and foundhttp://*.com/questions/8415962/what-exactly-phps-function-session-module-name-is-for but there are more.
0
raees at steelbrain dot com dot pk ¶
7 months ago
This function is used to set the Session Module at site or script level.
The global configuration can be done in php.ini under the [Session] section and with the name of "session.save_handler". The sessions are saved in files by default, like so:
session.save_handler = files
But with this configuration you set one of your websites to use some other session module (if you have them installed and extension loaded with PHP), like so:
<?php
// NOTE: You must use this function before starting session with session_start(); to make it work properly
session_module_name('memcache'); // or pgsql or redis etc
// You'll need to define a save path also, if the module is other than files, like so:
session_save_path('localhost:11211'); // memcache uses port 11211
// or you can use multiple for load balancing:
session_save_path('localhost:11211:41,otherhost:11211:60') // First part is hostname or path to socket, next is port and the last is the weight for that server
//The function also returns the value of the current session module.
echo session_module_name(); // will print memcache in our case
// or maybe a check
if(session_module_name() != 'memcache'){
// Do something, throw an exception maybe
}
-3
ts9904247885 at gmail dot com ¶
1 year ago
<?php
session_start();
$_SESSION['name']="Tushar";
$n=$_SESSION['name'];
$_SESSION['Age']="23";
$_SESSION['city']="Tarapur";
//echo session_encode()."<br/>";//Prints all Session Data
//echo session_is_registered($n);
echo session_module_name();//it prints "files"
?>
output:
files
转载于:https://my.oschina.net/yonghan/blog/471831
上一篇: 【NOIP模拟赛】小奇颓废赛 Day2
下一篇: Java实现MD5加密解密类
推荐阅读
-
php同时使用session和cookie来保存用户登录信息的实现代码,sessioncookie_PHP教程
-
php自定文件保存session的方法_PHP
-
使用PHP备份MYSQL数据的多种方法_PHP
-
使用无限生命期Session的方法(转)_PHP
-
php实现session自定义会话处理器的方法_php技巧
-
PHP中使用sleep造成mysql读取失败的案例和解决方法,sleepmysql_PHP教程
-
客服端禁用了cookie,服务端PHP仍旧使用session的方法
-
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例_php实例
-
推荐学习php sesson的朋友必看PHP会话(Session)使用入门_PHP
-
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法