探讨如何把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 相关文章推荐
提问的智慧(2)
Oct 09 PHP
php 清除网页病毒的方法
Dec 05 PHP
PHP 引用文件技巧
Mar 02 PHP
解析PHP正则提取或替换img标记属性
Jun 26 PHP
php防止网站被刷新的方法汇总
Dec 01 PHP
php通过淘宝API查询IP地址归属等信息
Dec 25 PHP
PHP模板引擎Smarty中的保留变量用法分析
Apr 11 PHP
php仿微信红包分配算法的实现方法
May 13 PHP
PHP目录操作实例总结
Sep 27 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 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
十天学会php之第十天
2006/10/09 PHP
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
Thinkphp无限级分类代码
2015/11/11 PHP
php post换行的方法
2020/02/03 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
python截取两个单词之间的内容方法
2018/12/25 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
python3中sys.argv的实例用法
2020/04/24 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
反邪教警示教育方案
2014/05/13 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
刑事法律意见书
2015/06/04 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
Html5新增了哪些功能
2021/04/16 HTML / CSS
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL
vue如何使用模拟的json数据查看效果
2022/03/31 Vue.js