探讨如何把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 图像处理类1
Jun 15 PHP
PHP中文件上传的一个问题
Sep 04 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
Jun 13 PHP
php实现的支持断点续传的文件下载类
Sep 23 PHP
php中的字符编码转换函数用法示例
Oct 20 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
php自定义函数实现JS的escape的方法示例
Jul 07 PHP
[原创]smarty简单模板变量输出方法
Jul 09 PHP
PHP读取word文档的方法分析【基于COM组件】
Aug 01 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
php调用mysql数据 dbclass类
2011/05/07 PHP
php安装dblib扩展,连接mssql的具体步骤
2017/03/02 PHP
ext 代码生成器
2009/08/07 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
Vue列表循环从指定下标开始的多种解决方案
2020/04/08 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python生成不重复随机值的方法
2015/05/11 Python
Python错误处理操作示例
2018/07/18 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
股权收购意向书
2014/04/01 职场文书
高三霸气励志标语
2014/06/24 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
总经理司机岗位职责
2015/04/10 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python