Mysql存取session实例

files:
common/common.config.php
include/session.inc.php
session_test.php
get_session_test.php
get_session_test2.php

Common.config.php
   
<?php
/*
* Common config
* By 恋太后天
*/

/*
* Database config
*/
define( “DBTYPE”, “mysql” );
$database = array
(
    “mysql” => array
    ( 
        “default” => array
        (
              “host”     => “localhost”,
              “user”     => “root”,
              “password” => “”,
              “dbname”   => “”
        ),
        “session” => array
        (
              “host”     => “localhost”,
              “user”     => “session”,
              “password” => “session”,
              “dbname”   => “sessions”
        )
    )
);

?>

session.inc.php

 
<?php
//使用mysql存放session 函数表
// by 恋太后天 2005-4-28

if (!isset($include_path)) $include_path = ”;

if (!is_array($database))
{
    include ($include_path.”common/Common.config.php”);
}

$DBsess      = $database[DBTYPE][“session”];
$DBsess_link = mysql_connect($DBsess[“host”], $DBsess[“user”], $DBsess[“password”]) 
               or die (“Error:Can not connect to Mysql server.“);

$SESS_LIFE = get_cfg_var(“session.gc_maxlifetime”);

function sess_open($path, $name)
{
    return true;
}

function sess_close()
{
    return true;
}

function sess_read($id)
{
    global $DBsess , $DBsess_link;
    mysql_select_db($DBsess[“dbname”]);
    $now = time();
    $result = mysql_query(“SELECT `data` FROM `sessions` 
                           WHERE `id`= ‘$id’ AND `expiry_time` > $now”, $DBsess_link);    
    if (list($data) = mysql_fetch_row($result))
    {   
       return $data;   
    }   
    return false; 
}

function sess_write($id, $data)
{
    global $DBsess , $DBsess_link, $SESS_LIFE;
    mysql_select_db($DBsess[“dbname”]);

    $expiry_time = time() + $SESS_LIFE;

    if ( !get_magic_quotes_gpc() )
    {
        $data = addslashes($data);
    }

    $now = time();

    $result = mysql_query(“INSERT into `sessions` (`id`, `expiry_time`,  `data`)”, $DBsess_link);

    if ( !$result )
    {
        $result = mysql_query(“UPDATE `sessions` SET `data`=’$data’, `expiry_time`=$expiry_time 
                               WHERE `id` = ‘$id’ AND `expiry_time` > $now”, $DBsess_link);
    }

存了个图 存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

存了个图 17 查看详情 存了个图

    return $result;
}

function sess_destroy($id)
{
    global $DBsess , $DBsess_link;
    mysql_select_db($DBsess[“dbname”]);
    $query = mysql_query(“DELETE FROM `session` WHERE `id`=’$id'”);
    return $query;
}

function sess_gc($maxlifetime)
{
    global $DBsess , $DBsess_link;  
    $query = mysql_query(“DELETE FROM `sessions` WHERE `expiry_time` < " . time(), $DBsess_link);   
    return mysql_affected_rows($DBsess_link);  

}

session_module_name();
session_set_save_handler(“sess_open”, “sess_close”, “sess_read”, “sess_write”, “sess_destroy”, “sess_gc”);

?>

session_test.php
   
<?php
// test for using session
include (“common/Common.config.php”);
include (“include/session.inc.php”);

session_start();

$_SESSION[“abc”] = “A: I will be back!”;
$_SESSION[“meto”] = “B: Me too “;
echo “

?>

get_session_test.php

   
<?php
// test for using session
include (“common/Common.config.php”);
include (“include/session.inc.php”);

session_start();
/*
* www.knowsky.com
*/
$_SESSION[“c”] = “
C: I will follow U. ^0^!”;
print($_SESSION[“abc”]);
print(“
“);
print($_SESSION[“meto”]);
echo “
“.
     “

?>

get_session_test2.php

   
<?php
//get_session_test2.php
// test for using session
include (“common/Common.config.php”);
include (“include/session.inc.php”);

session_start();
print($_SESSION[“c”]);
?>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/423682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月7日 10:40:35
下一篇 2025年11月7日 10:45:21

相关推荐

  • JavaScript服务器端Node.js架构

    Node.js基于V8引擎实现服务端JavaScript运行,采用事件驱动、非阻塞I/O模型,适合高并发实时应用;其核心架构包括单线程事件循环、libuv异步处理、CommonJS模块系统;常见模式有MVC、分层、微服务及中间件管道;技术栈涵盖Express/Koa/NestJS框架、npm/yar…

    2025年12月21日
    000
  • 数据持久化方案比较

    文件存储适合轻量级需求,实现简单但并发和查询能力弱;2. 关系型数据库保障一致性与复杂查询,适用于强一致性系统;3. NoSQL 数据库高扩展高性能,适合动态结构与海量数据;4. 对象存储用于海量非结构化文件,具备高持久性但不支持随机更新;5. 方案选择需综合数据类型、访问模式与规模,最合适组合优于…

    2025年12月21日
    000
  • JavaScript数据库操作与ORM框架

    Node.js中JavaScript可通过原生驱动、查询构建器或ORM操作数据库;ORM如Sequelize、TypeORM、Mongoose和Prisma将数据表映射为对象,提升开发效率并增强安全性,但存在性能开销与学习成本,需根据项目规模选择合适方案。 JavaScript 本身并不直接支持数据…

    2025年12月21日
    000
  • Node.js/MySQL动态批量更新多行数据的策略与实践

    在node.js应用中,使用`mysqljs/mysql`模块进行动态批量更新多行数据时,直接将多组数据作为单个`update`语句的参数会导致语法错误,因为其处理方式不同于批量`insert`。本文将深入探讨这一常见误区,并提供三种有效的解决方案:利用`insert … on dupl…

    2025年12月20日
    000
  • MySQL动态批量更新多行数据的策略与实践

    在MySQL中,直接使用类似`INSERT`语句的嵌套数组方式进行动态批量`UPDATE`操作是不被支持的。本文将深入探讨三种有效的替代策略:利用`INSERT … ON DUPLICATE KEY UPDATE`、迭代执行多条独立`UPDATE`语句,以及构建包含`CASE`表达式的复…

    2025年12月20日
    000
  • 处理动态表单数据:PHP 教程

    本教程旨在解决在 PHP 中处理由 JavaScript 动态生成的表单数据的问题。通过修改 HTML 元素的 name 属性,并结合 PHP 端的数组处理,可以有效地获取和存储动态表单中的数据。本文将提供详细的代码示例和步骤,帮助你理解和实现这一过程,从而顺利将动态表单数据存入数据库。 理解动态表…

    2025年12月20日
    000
  • 前端日志系统设计与实现

    前端日志系统是排查问题、监控体验和优化性能的关键工具,需具备采集、分级、上报、存储与展示能力。首先定义日志级别(debug、info、warn、error、fatal),线上通常只上报warn及以上以控制数据量;结合自动采集(JS错误、Promise异常、资源加载失败、框架错误钩子、性能指标)与手动…

    2025年12月20日
    000
  • JavaScript数据库操作优化

    通过减少网络请求、合理使用缓存、优化本地数据处理和提升IndexedDB效率,可显著提升前端数据操作性能。 JavaScript本身不直接操作传统意义上的数据库(如MySQL、PostgreSQL),但在前端或Node.js环境中,我们常通过API与后端数据库交互,或在浏览器中使用IndexedDB…

    2025年12月20日
    000
  • 统计其他 Discord Bot 命令的使用次数

    本文介绍如何使用 Python 和 Discord.py 库来统计特定用户使用其他 Discord Bot 命令的次数,例如 DISBOARD 的 !bump 命令。主要通过两种方法实现:一是监听所有消息并检查命令,二是创建一个具有相同命令的 Bot 来同步触发。本文将重点讲解第二种方法,并提供示例…

    2025年12月20日
    000
  • 构建多租户应用:利用子域名和主机头实现单一部署与数据隔离

    本文探讨如何利用子域名和http主机头实现多租户应用的单一部署与数据隔离。通过识别请求中的子域名来确定租户,进而路由到对应的数据库或数据源,确保每个租户拥有独立的动态数据,同时共享一套核心应用代码。这种策略极大地简化了应用更新和维护,适用于remix等现代web框架。 一、理解多租户架构与挑战 多租…

    2025年12月20日
    000
  • 从数据库获取数据并在日历中显示:完整教程

    本文档旨在指导开发者如何从数据库中获取事件数据,并将其集成到 javascript 日历中进行可视化展示。我们将重点讲解如何使用 jquery 和 php 从数据库中提取数据,并将其转换为日历组件能够识别的事件格式,最终实现动态更新日历事件的功能。 ### 1. 数据准备与后端接口首先,我们需要一个…

    2025年12月20日
    000
  • 使用 Knex 从 MySQL datetime 列按日期选择数据

    本文介绍了如何使用 Knex.js 从 MySQL 数据库的 datetime 列中按日期选择数据。重点讲解了 `whereRaw` 方法的使用,并通过示例代码演示了如何进行参数绑定和直接插入值两种方式,帮助开发者灵活地实现日期查询需求。 在使用 Knex.js 与 MySQL 数据库交互时,经常需…

    2025年12月20日
    000
  • 从数据库加载数据并在日历中显示事件

    本文档旨在指导开发者如何从数据库中获取事件数据,并将其动态地展示在日历控件上。我们将重点解决数据格式转换、异步加载以及与现有日历代码集成的常见问题,并提供可执行的代码示例,帮助您快速实现数据库驱动的日历功能。 ### 前提条件在开始之前,请确保您已具备以下条件:* 熟悉 HTML、CSS 和 Jav…

    2025年12月20日
    000
  • 在Node.js中,如何构建一个高并发的RESTful API服务器?

    使用Fastify框架并启用集群模式,结合Redis缓存、数据库连接池、限流熔断及Nginx反向代理,充分发挥Node.js异步非阻塞特性以构建高并发RESTful API服务。 构建一个高并发的 RESTful API 服务器,关键在于性能优化、稳定性保障和良好的架构设计。Node.js 天生适合…

    2025年12月20日 好文分享
    000
  • Knex 中从 MySQL DATETIME 列按日期筛选数据的技巧

    本教程旨在解决使用 knex 从 mysql 的 datetime 类型列中仅按日期部分筛选数据的常见问题。我们将探讨直接使用 date() 函数失败的原因,并详细介绍如何利用 knex 的 whereraw 方法实现安全有效的日期筛选,同时提供参数绑定和直接插入值的示例及注意事项。 Knex 中从…

    2025年12月20日
    000
  • 使用 Knex.js 根据日期查询 MySQL datetime 列的数据

    本文介绍了如何使用 Knex.js 查询 MySQL 数据库中 `datetime` 类型列,并根据日期进行筛选。核心方法是使用 `whereRaw` 函数执行原生 SQL 语句,从而利用 MySQL 的 `date()` 函数提取日期部分进行比较。文章提供了两种 `whereRaw` 的使用方式,…

    2025年12月20日
    000
  • 如何用Node.js构建一个高并发的后端服务?

    构建高并发Node.js服务需选用Fastify框架、启用集群模式、优化数据库访问并引入Redis缓存,结合Nginx负载均衡与PM2进程管理,通过监控和限流保障系统稳定。 构建一个高并发的后端服务,关键在于充分利用 Node.js 的非阻塞 I/O 和事件循环机制,同时结合合理的架构设计和性能优化…

    2025年12月20日
    000
  • Knex.js中如何通过日期筛选MySQL datetime列数据

    本教程详细介绍了在knex.js中,如何从mysql的`datetime`类型列中,仅根据日期部分进行数据筛选。针对直接使用`date()`函数报错的问题,文章提供了两种基于`whereraw`方法的解决方案,并强调了参数绑定的重要性,确保查询的安全性与准确性。 在数据库操作中,我们经常需要根据日期…

    2025年12月20日
    100
  • Knex.js 中从 MySQL datetime 列按日期筛选数据的实用指南

    本教程旨在解决 knex.js 在 mysql 中按日期筛选 `datetime` 类型列数据时遇到的挑战。针对 knex 直接调用 `date()` 函数的限制,文章详细阐述了如何利用 `whereraw` 方法实现这一功能,并提供了两种实现方式:安全的参数绑定和便捷的直接值插入。同时,强调了在使…

    2025年12月20日
    000
  • Django 迁移后仍出现 INTEGRITY ERROR:列已不存在的解决方案

    本文旨在解决 Django 项目中,在模型字段删除并执行迁移后,仍然出现 `IntegrityError`,提示某列(已删除)违反非空约束的问题。我们将探讨问题原因,并提供详细的排查和修复步骤,确保数据一致性和应用正常运行。 在 Django 开发过程中,我们经常需要修改模型(models.py)并…

    2025年12月20日
    000

发表回复

登录后才能评论
关注微信