探讨如何把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对象类型判断
Aug 27 PHP
php UTF8 文件的签名问题
Oct 30 PHP
php循环创建目录示例分享(php创建多级目录)
Mar 04 PHP
php自定义hash函数实例
May 05 PHP
Yii CGridView用法实例详解
Jul 12 PHP
PHP防止图片盗用(盗链)的方法小结
Nov 11 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 PHP
PHP用PDO如何封装简单易用的DB类详解
Jul 30 PHP
php5.x禁用eval的操作方法
Oct 19 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
Mar 25 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
Python与shell的3种交互方式介绍
2015/04/11 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
详解python字节码
2018/02/07 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
python实现录音小程序
2020/10/26 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
html5 CSS过度-webkit-transition使用介绍
2013/07/02 HTML / CSS
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
如何用PHP实现邮件发送
2012/12/26 面试题
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
学生党员公开承诺书
2014/05/28 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书