探讨如何把session存入数据库

 更新时间:2013年06月07日 09:41:47   作者:  
本篇文章是对如何把session存入数据库的方法进行了详细的分析介绍,需要的朋友参考下
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一样的方法使用旧可以了。

相关文章

  • ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法

    ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法

    ThinkPHP的数据库条件查询语句有字符串式,数组式书写方法,字符串式即是原生式而数组式的查询语句因书写方式与特定字符的原因比较复杂,今天为大家讲解一下ThinkPHP数组式查询语句的书写方法
    2018-09-09
  • php 模拟POST|GET操作实现代码

    php 模拟POST|GET操作实现代码

    很早的时候,参加面试,需要使用php的函数模拟一个post访问。尽管对php很熟悉,但是由于面试之前很长时间没有使用php语言,所以就没有答上来。
    2010-07-07
  • PHP实现获取客户端IP并获取IP信息

    PHP实现获取客户端IP并获取IP信息

    这篇文章主要介绍了PHP实现获取客户端IP并获取IP信息的方法示例,非常实用,有需要的小伙伴快来参考下吧。
    2015-03-03
  • Php 构造函数construct的前下划线是双的_

    Php 构造函数construct的前下划线是双的_

    最近写php的class时,总是碰到function non object的错误,知道是类没有实例化,但就是不知道错误在哪里。
    2009-12-12
  • PHP实现word转pdf的两种方式(有用!)

    PHP实现word转pdf的两种方式(有用!)

    最近遇到一个需求,将word文件转换成pdf,辗转了一上午终于搞定了,下面这篇文章主要给大家介绍了关于PHP实现word转pdf的两种方式,需要的朋友可以参考下
    2022-09-09
  • 轻松修复Discuz!数据库

    轻松修复Discuz!数据库

    各位站长经常会遇到的数据库损坏的错误,错误来了就去面对,不要慌张,瞎着急是没有用的。其实熟悉Discuz! 的朋友都知道,Discuz! 后台自带数据库修复工具的,如果数据库损坏导致首页打不开了,但是后台还可以进去。
    2008-05-05
  • simplehtmldom Doc api帮助文档

    simplehtmldom Doc api帮助文档

    simple_html_dom.php 一款像jquery一样好用的html/xml 分析利器,一个PHP处理HTML的利器,很像jquery,需要的朋友可以参考下
    2012-03-03
  • 深入解析PHP的引用计数机制

    深入解析PHP的引用计数机制

    本篇文章是对PHP中的引用计数机制进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php getsiteurl()函数

    php getsiteurl()函数

    理解:从字面上看,是获得站点的URL
    2009-09-09
  • PHP isset()及empty()用法区别详解

    PHP isset()及empty()用法区别详解

    这篇文章主要介绍了PHP isset()及empty()用法区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08

最新评论