探讨如何把session存入数据库


Posted in PHP onJune 07, 2013

php的session默认的情况下是采用的文件方式来保存的,我们在php的配制文件php.ini中可以看到这样的一行,session.save_handler="files",这样的意思就是采用文件来保存session 的,要采用数据库来保存的话,我们需要修改成拥护模式,改称 session.save_handler="use"就可以了,但是,这仅仅是说明我门没有采用文件的方式存储session,我们还要选择数据库和建立数据库的表。

建立数据库和数据库的表结构,我们可以采用php可以使用的任何的数据库,因为php和mysql的结合最好,我就使用mysql来做事例,当然根据你的需要可以改称别的数据库,同时因为mysql没有事物的功能,这也比别的数据库更快,然而保存session 书、一 不许要事物处理的,再者里我决的更好。
创建数据库:

CREATE DATABASE 'session'; 创建表结构 CREATE TABLE 'session'( id CHAR(30) NOT NULL  , 'user 'CHAR(30), data CHAR(3000) ,PARMIRY BY ('id') );

下面我们来编写保存session的文件session_start.php
<?php
 $con =mysql_connection("127.0.0.1","user" , "pass");
        mysql_select_db("session");
function open($save_path, $session_name) 
{
    return(true);
}
function close() 
{
  return(true);
}
function read($id) 
{
   if($result = mysql_query("SELECT * FROM session WHERE id='$id'"))
     {
        if($row = mysql_felth_row($result ))
           {  return $row["data"]; }
      }
   else
     {
      return "";
      }
}
function write($id, $sess_data) 
{
  if($result = mysql_query("UPDATE session SET data='$sess_data' WHERE id='$id'"))
     {
        return true;
      }
   else
     {
      return false;
      }
}
function destroy($id) 
{
 if($result = mysql_query("DELETE * FROM  session WHERE id='$id'"))
     {
        return true;
      }
   else
     {
      return false;
      }
}
/*********************************************
* WARNING - You will need to implement some *
* sort of garbage collection routine here.  *
*********************************************/
function gc($maxlifetime) 
{
  return true;
}
session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
session_start();
// proceed to use sessions normally
?>

现在我们的工作就已经完成了,只要你在需要在使用session的时候,把session_user_start.php。包含进来,
注意,这个文件一定要在文件的第一行包含,然后就想使用文件的session一样的方法使用旧可以了。
PHP 相关文章推荐
PHP脚本数据库功能详解(中)
Oct 09 PHP
PHP 获取MySQL数据库里所有表的实现代码
Jul 13 PHP
将php数组输出html表格的方法
Feb 24 PHP
PHP安装memcached扩展笔记
May 28 PHP
php开发微信支付获取用户地址
Oct 04 PHP
composer.lock文件的作用
Feb 03 PHP
PHP 数组遍历foreach语法结构及实例
Jun 13 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
Sep 22 PHP
PHP对象、模式与实践之高级特性分析
Dec 08 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
PHP多维数组排序array详解
Nov 21 PHP
基于PHP对XML的操作详解
Jun 07 #PHP
关于初学PHP时的知识积累总结
Jun 07 #PHP
基于PHP常用字符串的总结(待续)
Jun 07 #PHP
解析php中call_user_func_array的作用
Jun 07 #PHP
简单的cookie计数器实现源码
Jun 07 #PHP
深入eAccelerator与memcached的区别详解
Jun 06 #PHP
基于PHP开发中的安全防范知识详解
Jun 06 #PHP
You might like
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
php发送邮件的问题详解
2015/06/22 PHP
php实现文件管理与基础功能操作
2017/03/21 PHP
PHP多维数组排序array详解
2017/11/21 PHP
javascript中对对层的控制
2006/12/29 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
Python requests模块实例用法
2019/02/11 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
初中生个人学习的自我评价
2013/12/04 职场文书
简历中的自我评价范文
2014/02/05 职场文书
出国英文推荐信
2014/05/10 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
二审答辩状范文
2015/05/22 职场文书
创业计划书介绍
2019/04/24 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js
部分武汉产收音机展览
2022/04/07 无线电