首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >数据库更改时更新PHP会话变量

数据库更改时更新PHP会话变量
EN

Stack Overflow用户
提问于 2014-03-30 02:05:54
回答 3查看 2.6K关注 0票数 0

底线优先:是否有方法从运行在会话外部的服务器上的脚本中更新会话变量?

Detail:我使用MySQL存储大量用户信息。当用户登录时,我将其中的一些信息存储在$_SESSION中,作为缓存数据的一种方式,以减少选择查询的数量。用户处理数据,所做的任何更改都保存到数据库中。

问题是,当用户使用数据的$_SESSION表示时,数据库上的数据可能会发生变化。在这种情况下,一组更改可以覆盖另一组。在$_SESSION中使用数据时,“锁定”数据库中的数据是不可行的。

在数据“签出”时用$_SESSION id标记数据库,然后更新数据的$_SESSION表示形式(如果脚本对已签出的数据进行更改),这将是相当简单的。我只是不知道可以从会话外部服务器上的脚本中调用什么(如果有的话)来更改会话中的变量。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-30 02:40:08

在收到您的评论后,我认为此解决方案将对您有效:

启动会话时,将会话id保存在数据库中:即

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
session_start();
$sid = session_id(); // suppose o4lb6s392r2mj1vv6nhlrjfmp1
$_SESSION['user_solr'] = 'admin';

你会得到一根绳子。如果您想要更改会话数据,而不需要刷新用户页面,请执行以下操作以更改用户的会话数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
session_id('o4lb6s392r2mj1vv6nhlrjfmp1'); // previous session id
session_start();
$_SESSION['user_solr'] = 'editor';

更新:--这也适用于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
session_start('o4lb6s392r2mj1vv6nhlrjfmp1'); // previous session id
$_SESSION['user_solr'] = 'editor';
票数 2
EN

Stack Overflow用户

发布于 2014-03-30 02:30:49

将会话存储在数据库中,并使用SQL触发器更新会话表。这样,当用户表被更改时,sql触发器也将更新会话表。

您可以阅读更多内容,并在MySQL文档中看到一些示例。

票数 1
EN

Stack Overflow用户

发布于 2014-03-30 02:18:48

您可以做的是经常向服务器发出Ajax请求,检查会话变量是否已经更新:

将$_SESSION变量放置在隐藏的输入中,并将其发送到服务器。

您的php/html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form id='formid'>
<input type='hidden' name='name' value='<?php echo $_SESSION['name']; ?>'>
</form>

JS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
window.setInterval($("#formid").submit());

$("#formid").submit(function(){
   $.ajax({
      type: "POST",
      url: "someFileToUpdateTheSession.php",
      data: $(this).serialize(),
      success: function(){
          // Do what you want to do when the session has been updated
      }
   });

   return false;
});

其他php文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
   session_start();
   $_SESSION["name"] = $_POST["name"];
   // etc.
?>

然后,您只需检查$_SESSION变量是否已更改,如果已更改,则更新$_SESSION变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22742679

复制
相关文章
向量数据库入坑指南:初识 Faiss,如何将数据转换为向量(一)
我们日常使用的各种 APP 中的许多功能,都离不开相似度检索技术。比如一个接一个的新闻和视频推荐、各种常见的对话机器人、保护我们日常账号安全的风控系统、能够用哼唱来找到歌曲的听歌识曲,甚至就连外卖配送的最佳路线选择也都有着它的身影。
Zilliz RDS
2022/11/07
8.8K0
Python列表长度
确定列表长度 # 定义一个汽车品牌数组 cars = ['bmw', 'audi', 'benz'] # 输出列表长度 print('列表长度是:') print(len(cars)) 输出 列表长度是: 3
py3study
2020/01/10
1.4K0
如何将Pandas数据转换为Excel文件
将数据导出到Excel文件通常是任何用户阅读和解释一组数据的最优先和最方便的方式。通过使用Pandas库,可以用Python代码将你的网络搜刮或其他收集的数据导出到Excel文件中,而且步骤非常简单。
玖柒的小窝
2021/11/01
7.6K0
将列表分成指定长度的列表
在工作或参加面试过程中,经常遇到将一个列表,按指定长度分割成多个列表的问题。详细实现过程,看如下具体实例:
TalkPython
2019/05/24
2.9K0
不同列不同行的数据如何进行转置?
案例模拟文件下载 http://gofile.me/4KHV7/SUo5ywXxC
逍遥之
2020/03/24
2.9K0
不同列不同行的数据如何进行转置?
获取不同长度的UUID[通俗易懂]
在公司,有时候让处理一些命名规则时,要使用一个唯一标识,还是十六进制的,需要多少位看领导心情.
全栈程序员站长
2022/09/22
3.5K0
列表长度与索引
借助llength命令可获取列表的长度(列表所包含的元素的个数,不难发现很多跟列表相关的命令都是以英文单词l(其大写为L)开头的)。图1显示列表a的长度为3。
Lauren的FPGA
2019/10/30
1.5K0
如何将ownCloud转换为Nextcloud
ownCloud的核心开发团队中一部分人员启动了一个名为Nextcloud的项目。虽然ownCloud将继续开发,但您可能想了解新项目的功能。Nextcloud和ownCloud共享一个公共代码库,这意味着将现有的ownCloud安装迁移到Nextcloud中。
小铁匠米兰的v
2018/08/02
2.6K0
【转】URL最大长度问题
今天在测试Email Ticket的时候发现在进行Mark as Read/Unread操作时,请求是通过GET方式进行的。URL中列出了所有参与该操作的Ticket Id。于是,我想起GET请求是有最大长度限制的。遂输入超长一串Ticket Id进行请求,结果页面报错如下:
ZhangXianSheng
2019/07/02
2.7K0
如何将Array转换为List?
可以使用 Arrays.asList() 方法, 该方法接受一个数组作为输入,并返回一个列表作为输出。
程序你好
2018/07/23
1.4K0
python如何将一个多位数数值转换为列表类型
现在:a = 10,由于暂时没找到更好的方法,且使用下面的方法进行转换。 目标:转化为['10'] 以下为错误尝试: 1.直接转换,提示整型对象不可迭代。 2.先转换为字符串,再转换为列表,发现被分成
逆向小白
2018/09/12
1.8K0
python如何将一个多位数数值转换为列表类型
如何将文字转换为对应的PathGeometry
其实我们可以使用FormattedText的BuildGeometry将字符串转成对应的Geometry
黄腾霄
2020/06/10
1.6K0
Python 元组转换为列表
结论:当给定一个可迭代对象(如列表、元组、集合、范围等)时,list() 和 tuple() 返回一个新的列表和元组
Python学习者
2023/07/17
2780
策略模式:处理不同策略具有不同参数的情况
策略模式确实在处理不同策略需要不同参数的情况下会显得有些复杂。然而,这并不意味着策略模式不能在这种情况下使用。有几种可能的解决方案:
运维开发王义杰
2023/08/16
6700
策略模式:处理不同策略具有不同参数的情况
java如何将String转换为enum
已知枚举对应的String值,希望得到对应的枚举值。例如,已知"A",希望得到对应的枚举——Blah.A,应该怎么做? Enum.valueOf()是否能实现以上目的,如果是,那我如何使用?
硬核编程
2020/07/23
3.9K0
向量数据库的四大优势
其一,高效的向量查询:传统的关系型数据库查询主要是基于条件和逻辑运算,而向量数据库的查询是基于向量相似性的匹配。通过使用向量相似度算法,向量数据库能够更快地查询与某个向量最相似的数据;其二,良好的扩展性:向量数据库通常能够支持大规模向量数据的存储和查询,而且可以轻松地通过添加更多的节点来扩展系统的性能;
LCHub低代码社区
2023/06/21
8330
向量数据库的四大优势
如何将Altium画的PCB转换为Allegro
PCB(Printed-Circuit Board)设计软件种类有很多种,但是最常用的是Altium Designer、mentor pads、cadence allegro这三个软件,既然是常用的,那就可能会遇到相互转换的时候,下面为具体步骤:
用户10191012
2022/11/18
2.3K0
如何将Altium画的PCB转换为Allegro
如何将视频轻松转换为 GIF
有时看到一条有意思的视频想发到朋友圈,但朋友圈有限制时长,而且也不方便,这时可以把视频转GIF(再做成表情包也可以),再发到朋友圈或者微博(不用像视频一样需要等待审核)。
苏生不惑
2020/02/26
1.8K0
如何将pdf转换为word 2.0
再次以《新冠肺炎诊疗方案(试行第七版)》为例,该文件为图片性pdf,文字不可复制。
生信菜鸟团
2020/06/04
2.6K0
点击加载更多

相似问题

我可以从命令行向github添加问题吗?

64

可以从命令行传递关键字参数吗?

10

如何从命令行向Makefile传递参数?

51

从命令行向Java类传递参数

10

如何从命令行向gradle传递参数

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文