探讨如何把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 相关文章推荐
模拟SQLSERVER的两个函数:dateadd(),datediff()
Oct 09 PHP
数字转英文
Dec 06 PHP
Smarty安装配置方法
Apr 10 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
Jun 21 PHP
php 邮件发送问题解决
Mar 22 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
php制作动态随机验证码
Feb 12 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
YII视图整合kindeditor扩展的方法
Jul 13 PHP
解决laravel 5.1报错:No supported encrypter found的办法
Jun 07 PHP
Laravel框架学习笔记之批量更新数据功能
May 30 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
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
php短址转换实现方法
2015/02/25 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
jquery移动节点实例
2015/01/14 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
详解Python字典的操作
2019/03/04 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
python中常见错误及解决方法
2020/06/21 Python
Python jieba库分词模式实例用法
2021/01/13 Python
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
员工加薪申请报告
2015/05/15 职场文书
vue+echarts实现多条折线图
2022/03/21 Vue.js
Redis特殊数据类型bitmap位图
2022/06/01 Redis