探讨如何把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 相关文章推荐
Http 1.1 Etag 与 Last-Modified提高php效率
Jan 10 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
Oct 31 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
thinkphp的c方法使用示例
Feb 24 PHP
Smarty模板学习笔记之Smarty简介
May 20 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
Jul 04 PHP
php实现的双向队列类实例
Sep 24 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
php准确计算复活节日期的方法
Apr 18 PHP
PHP页面转UTF-8中文编码乱码的解决办法
Oct 20 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 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
全国中波电台频率表
2020/03/11 无线电
用PHP将数据导入到Foxmail
2006/10/09 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
php搜索文件程序分享
2015/10/30 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
js注意img图片的onerror事件的分析
2011/01/01 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
详解vue 命名视图
2019/08/14 Javascript
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
对numpy中shape的深入理解
2018/06/15 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
德国家具在线:Fashion For Home
2017/03/11 全球购物
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
大三自我鉴定范文
2013/10/05 职场文书
培训演讲稿范文
2014/01/12 职场文书
幼儿园教研活动方案
2014/01/19 职场文书
煤矿安全承诺书
2014/05/22 职场文书
圣诞节开幕词
2015/01/29 职场文书
年会主持人开场白台词
2015/05/29 职场文书
首席执行官观后感
2015/06/03 职场文书
生死抉择观后感
2015/06/09 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫