`
shuilinbo
  • 浏览: 13410 次
文章分类
社区版块
存档分类
最新评论

文件数据库PHP用mysql数据库存储session 文件数据库

阅读更多

题记:写这篇博客要主是加深自己对文件数据库的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。

    大部分应用php的人一旦应用到session会都应用cookie。
cookie虽好可是它也会给我们带来一些隐患的。
隐患一:如果客户端呆板的cookie一旦因毒病而失效了,那么session也就相当于没有了。
隐患二:session在php中认默的是以文件的情势保存在一个临时文件夹面里的,对于一个小型系统来讲,这样做完全可以,
可是对于一个大型而又被经常问访的系统来讲,就不是很好的法办了。假设这个站网一天有1000个人问访。一个月当前session的临时文件夹就会有30000个临时文件。设想一下计算机要从30000面里找一条session_sid是一个如许漫长的情事呀!
因此为了高提效率。
交易应用用数据库保存session。具体方法如下:
1.改更php.ini文件。
由于php认默保存session的方法是files所以我们要变改它。即:找到“session.save_handler = files”将“files”改成“User”。
把session的模式改成户用自定义的。
2.建立数据库:
CREATE TABLE `db_session` (
   `sesskey` char(32) NOT NULL,
   `expiry` int(11) unsigned NOT NULL,
   `value` text NOT NULL,
   PRIMARY KEY   (`sesskey`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
数据库明表:db_session
列名:sesskey,expiry,value 其中:sesskey为主键。
Value面里存放着session面里的值。
3.建立session_mysql.php文件。这个文件是用来造构保存session的方法的。修改一下参数直接应用就能够了。
session_mysql.php

    制复PHP内容到剪贴板
PHP代码:

<?php
        $gb_DBname="db_myBBS";//数据库称名
       $gb_DBuser="root";//数据库户用称名
       $gb_DBpass="23928484";//数据库码密
       $gb_DBHOSTname="localhost";//主机的称名或是IP址地
       
       $SESS_DBH="";
       $SESS_LIFE=get_cfg_var("session.gc_maxlifetime");//到得session的大最有效期。
       
       function sess_open($save_path,$session_name){
               global $gb_DBHOSTname,$gb_DBname,$gb_DBuser,$gb_DBpass,$SESS_DBH;
               if(!$SESS_DBH=mysql_pconnect($gb_DBHOSTname,$gb_DBuser,$gb_DBpass)){
                      echo "<li>MySql Error:".mysql_error()."<li>";
                      die();
               }
               if(!mysql_select_db($gb_DBname,$SESS_DBH)){
                      echo "<li>MySql Error:".mysql_error()."<li>";
                      die();
               }
               return true;
        }
       
        function sess_close(){
               return true;
        }
       
        function sess_read($key){
               global $SESS_DBH,$SESS_LIFE;
             $qry="select value from db_session where sesskey = '$key' and expiry > ".time();
             $qid=mysql_query($qry,$SESS_DBH);
               if(list($value)=mysql_fetch_row($qid)){
                      return $value;
               }
               return false;
        }
       
        function sess_write($key,$val){
               global $SESS_DBH,$SESS_LIFE;
              $expiry=time()+$SESS_LIFE;
              $value=$val;
              $qry="insert into db_session values('$key',$expiry,'$value')";
              $qid=mysql_query($qry,$SESS_DBH);
               if(!$qid){
                     $qry="update db_session set expiry=$expiry, value='$value' where sesskey='$key' and expiry >".time();
                     $qid=mysql_query($qry,$SESS_DBH);
               }
               return $qid;
        }
       
        function sess_destroy($key){
              global $SESS_DBH;
              $qry="delete from db_session where sesskey = '$key'";
              $qid=mysql_query($qry,$SESS_DBH);
               return $qid;
        }
       
        function sess_gc($maxlifetime){
               global $SESS_DBH;
              $qry="delete from db_session where expiry < ".time();
              $qid=mysql_query($qry,$SESS_DBH);
              return mysql_affected_rows($SESS_DBH);
        }
       session_module_name();
       session_set_save_handler("sess_open","sess_close","sess_read","sess_write","sess_destroy","sess_gc");
?>

4.建立测试文件。
在应用之前必须用引刚建立的session_mysql.php文件。
session_test.php

    制复PHP内容到剪贴板
PHP代码:

<?php
include ("session_mysql.php");
session_start();
$_SESSION['abc']= "A: I will be back!";
$_SESSION['meto']= "B: Me too ";
$_SESSION['name']= "louis ";
echo "<a href=\"get_session_test.php\">click me</a>";
?>

get_session_test.php

<?php 
include ("session_mysql.php");
session_start();
echo $_SESSION['abc'];
echo "<br>";
echo $_SESSION['meto'];
echo "<br>";
echo $_SESSION['name'];
$_SESSION['wq']="12e";
echo "<br><a href=\"get_session_test2.php\">click again</a>";
?>

get_session_test2.php

<?php
include ("session_mysql.php");
session_start();
echo $_SESSION['abc'];
echo "<br>";
echo $_SESSION['meto'];
echo "<br>";
echo $_SESSION['name'];
echo "<br>";
echo $_SESSION['wq'];
//session_destroy();//用来销毁全部session的函数。
?>

文章结束给大家分享下程序员的一些笑话语录: 自从有了Photoshop,我再也不相信照片了!(没有Photoshop的年代,胶片照片年代做假的也不少,那时候都相信假的!)

分享到:
评论

相关推荐

    php mysql数据库 存储session

    本主题聚焦于“PHP MySQL数据库存储session”,这涉及到如何使用PHP将用户的session数据存储在MySQL数据库中,以实现更安全、可扩展的会话管理。 首先,让我们了解一下session的基本概念。Session是一种在服务器端...

    PHP+MYSQL+SESSION实现简单购物车类数据库文件

    2. **连接数据库**:在PHP中,使用`mysqli`或`PDO`扩展连接到MySQL数据库,执行SQL脚本初始化数据库。 3. **购物车操作**: - **添加商品**:用户选择商品后,将商品ID和数量写入SESSION数组,如`$_SESSION['cart'...

    PHP自定义session存储(mysql数据库)

    里边有详细代码,包含SQL脚本,...//设置用户自定义Session存储 session_set_save_handler('mysession_open', 'mysession_close', 'mysession_read', 'mysession_write', 'mysession_destroy', 'mysession_gc'); ?&gt;

    PHP实现Mysql数据库安装程序源码

    【PHP实现Mysql数据库安装程序源码】是一个用于自动化MySQL数据库安装的PHP脚本集合,它可以帮助开发者快速、便捷地创建和配置数据库。这个程序源码包含了一系列的PHP文件,如`schema.php`、`install2.php`、`...

    PHP留言板源码含数据库文件MySQL

    2. **数据库连接与配置**: `connect.php`文件通常包含了连接到MySQL数据库的代码,使用了PHP的`mysqli`或`PDO`扩展来建立连接。`config.php`文件可能包含数据库的配置信息,如主机名、用户名、密码和数据库名称,...

    基于PHP+MYSQL图书销售管理系统 (含数据库文件).zip

    《基于PHP+MYSQL图书销售管理系统》是一个典型的Web应用程序,它结合了PHP编程语言与MySQL数据库管理系统,用于实现图书的销售管理。在这个系统中,PHP作为服务器端脚本语言,负责处理用户请求,与数据库交互,生成...

    PHP 连接mysql数据库做简单的登录页面,实现用户的登录注册功能

    在PHP中,构建一个连接MySQL数据库的简单登录和注册页面是Web开发的基础步骤。下面将详细解释这个过程涉及的关键知识点。 首先,我们需要了解PHP和MySQL的连接方式。PHP通过mysqli或PDO扩展与MySQL进行交互。这里...

    PHP+Mysql实现的电子商务源码(含数据库)

    在本资源中,我们主要探讨的是使用PHP编程语言与MySQL数据库构建的一个电子商务网站的源代码。这个项目提供了从后台管理到前端用户界面的完整功能,是学习和实践PHP web开发,特别是电商应用的理想实例。 首先,PHP...

    php独立session数据库存储操作类分享_.docx

    本文将介绍一个PHP独立Session数据库存储操作类,它允许我们将Session信息存储在MySQL数据库中。 首先,我们来看一下代码结构。这个类名为`dbsession`,包含了配置数据库连接、初始化、读取和写入Session数据的相关...

    PHP用mysql数据库存储session的代码

    从给定文件中,我们可以提取以下知识点关于使用MySQL数据库存储PHP会话(session)的具体实现方法和技术背景。 1. **session存储的常规方式与问题**: PHP在处理session时,默认使用文件系统来保存会话数据。这种...

    php+mysql期末大作业

    "数据库文件包含在里面"表明项目不仅包括PHP脚本,还包含了用于存储和检索数据的MySQL数据库文件,这通常是一个.sql文件,用于导入和创建数据库结构及初始数据。 【标签】"mysql"指的是MySQL,一种广泛使用的开源...

    PHP & MySQL Web数据库应用开发指南 源代码

    在“PHP & MySQL Web数据库应用开发指南 源代码”这个资源中,我们可以深入学习如何构建基于Web的数据库应用程序,特别是使用PHP编程语言与MySQL数据库系统。PHP是一种广泛用于服务器端脚本的开源语言,而MySQL是...

    php视频教程 mysql数据库

    【PHP与MySQL数据库交互】 PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在Web开发领域中占据重要地位。它以其易学易用、灵活性强和丰富的库支持而闻名。与此同时,MySQL是一种关系型数据库...

    ThinkPHP实现将SESSION存入MYSQL的方法

    为了解决这个问题,我们可以将Session数据存储到MySQL数据库中,以提高可扩展性和减轻服务器的压力。在ThinkPHP框架下,我们可以按照以下步骤实现这一功能。 首先,在`index.php`文件中,我们需要将PHP的Session...

    php语言+mysql数据库开发设计的最新版CMS内容管理系统.rar

    2. **连接数据库**:使用PHP的`mysqli`或`PDO`扩展,建立与MySQL服务器的连接。通过预处理语句防止SQL注入攻击,确保数据安全。 3. **数据交互**:利用PHP编写SQL查询语句,执行增删改查操作。可以使用事务处理批量...

    精选_基于PHP和MYSQL数据库实现的失物招领系统_源码打包

    【标题】"精选_基于PHP和MYSQL数据库实现的失物招领系统_源码打包" 涉及到的关键技术主要包括PHP编程语言、MySQL数据库以及后端开发实践。这一系统设计的目标是创建一个用于失物招领的在线平台,帮助用户发布丢失...

    php分卷备份还原mysql数据库.pdf

    在给定的文件中,我们看到了两个PHP文件,`Mydb.php` 和 `Bakeup.php`,它们是用于MySQL数据库的备份和恢复操作的。这些文件主要使用PHP的MySQL扩展来与数据库交互。下面将详细解释其中涉及的知识点: 1. **PHP ...

    php简易学生信息管理系统

    在学生信息管理系统中,MySQL数据库存储了学生的各项信息,如姓名、学号、年级等。通过SQL(结构化查询语言)语句,PHP可以对这些数据进行查询、插入、更新和删除操作。 3. **CRUD操作**: - **创建(Create)**:...

    将PHP的session数据存储到数据库中的代码实例

    在这个文档中,作者提供了两种实现将PHP session数据存储到数据库的方法,分别适用于PostgreSQL和MySQL数据库系统。这些方法不仅仅是代码片段,它们还包括了数据库的表结构设计、存储过程、触发器以及相关的PHP代码...

Global site tag (gtag.js) - Google Analytics